

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# ALTER DATABASE
<a name="r_ALTER_DATABASE"></a>

Altera os atributos de um banco de dados.

## Privilégios obrigatórios
<a name="r_ALTER_DATABASE-privileges"></a>

Para usar ALTER DATABASE, um dos privilégios a seguir é necessário.
+ Superusuário
+ Usuários com o privilégio ALTER DATABASE.
+ Proprietário do banco de dados

## Sintaxe
<a name="r_ALTER_DATABASE-synopsis"></a>

```
ALTER DATABASE database_name
{ 
  RENAME TO new_name
  | OWNER TO new_owner
  | [ CONNECTION LIMIT { limit | UNLIMITED } ]
    [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ]
    [ ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE } ]
| INTEGRATION
 { 
  REFRESH { { ALL | INERROR } TABLES [ IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] }
   | SET 
     [ QUERY_ALL_STATES [=] { TRUE | FALSE } ] 
     [ ACCEPTINVCHARS [=] { TRUE | FALSE } ] 
     [ REFRESH_INTERVAL <interval> ]
     [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ]
     [ HISTORY_MODE [=] {TRUE | FALSE} [ FOR { {ALL} TABLES [IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] } ] ]
 }
}
```

## Parâmetros
<a name="r_ALTER_DATABASE-parameters"></a>

 *database\_name*   
Nome do banco de dados a ser alterado. Normalmente, você deve alterar um banco de dados ao qual não estiver conectado. De qualquer maneira, as alterações somente entram em vigor nas próximas sessões. É possível alterar o proprietário do banco de dados atual, mas não é possível renomeá-lo:  

```
alter database tickit rename to newtickit;
ERROR:  current database may not be renamed
```

RENAME TO   
Renomeia o banco de dados especificado. Para obter mais informações sobre nomes válidos, consulte [Nomes e identificadores](r_names.md). Você não pode renomear os bancos de dados dev, padb\_harvest, template0, template1 ou sys:internal, além do banco de dados atual. Somente o proprietário do banco de dados ou um [superuser](r_superusers.md#def_superusers) pode renomear o banco de dados. Proprietários que não forem superusuários também devem ter o privilégio CREATEDB.

 *new\_name*   
Novo nome do banco de dados.

OWNER TO   
Altera o proprietário do banco de dados especificado. É possível alterar o proprietário do banco de dados atual ou de outro banco de dados. Somente um superusuário pode alterar o proprietário.

 *new\_owner*   
Novo proprietário do banco de dados. O novo proprietário deve ser um usuário existente de bancos de dados com privilégios de gravação. Para obter mais informações sobre privilégios do usuário, consulte [GRANT](r_GRANT.md).

CONNECTION LIMIT { *limite* \| UNLIMITED }   
Número máximo de conexões de banco de dados que os usuários podem abrir simultaneamente. Não há aplicação de limite para superusuários. Use a palavra-chave UNLIMITED para permitir o número máximo de conexões simultâneas. Um limite no número de conexões para cada usuário também pode ser aplicável. Para obter mais informações, consulte [CREATE USER](r_CREATE_USER.md). O valor padrão é UNLIMITED. Para visualizar as conexões atuais, consulte a exibição [STV\_SESSIONS](r_STV_SESSIONS.md) do sistema.  
Se limites de usuário e de conexão de banco de dados forem aplicáveis, um slot de conexão não utilizado que esteja dentro de ambos os limites deve estar disponível quando um usuário tenta se conectar.

COLLATE { CASE\_SENSITIVE \| CS \| CASE\_INSENSITIVE \| CI }  
Uma cláusula que especifica se a pesquisa ou comparação de string diferencia maiúsculas e minúsculas ou não.   
É possível alterar a distinção entre maiúsculas e minúsculas do banco de dados atual se ele estiver vazio.  
Você deve ter a permissão ALTER para o banco de dados atual para alterar a distinção entre maiúsculas e minúsculas. Os superusuários ou proprietários de bancos de dados com a permissão CREATE DATABASE também podem alterar a distinção.  
CASE\_SENSITIVE e CS são intercambiáveis e geram os mesmos resultados. Da mesma forma, CASE\_INSENSITIVE e CI são intercambiáveis e geram os mesmos resultados.

ISOLATION LEVEL { SNAPSHOT \| SERIALIZABLE }  
Uma cláusula que especifica o nível de isolamento usado quando são executadas consultas em um banco de dados. Para acessar mais informações sobre níveis de isolamento, consulte [Níveis de isolamento no Amazon Redshift](c_serial_isolation.md).  
+ Isolamento SNAPSHOT: fornece um nível de isolamento com proteção contra conflitos de atualização e exclusão. 
+ Isolamento SERIALIZABLE: fornece serialização total para transações simultâneas.
Considere os seguintes itens ao alterar o nível de isolamento de um banco de dados:  
+ Você deve ter o privilégio de superusuário ou CREATE DATABASE para o banco de dados atual a fim de alterar o nível de isolamento do banco de dados.
+ Você não pode alterar o nível de isolamento do banco de dados `dev`. 
+ Você não pode alterar o nível de isolamento em um bloco de transação.
+ O comando para alterar o nível de isolamento falhará se outros usuários estiverem conectados ao banco de dados.
+ O comando para alterar o nível de isolamento pode alterar as configurações de nível de isolamento da sessão atual.

INTEGRATION  
Altere um banco de dados de integração ETL zero.

REFRESH {{ ALL \| INERROR } TABLES [IN SCHEMA *schema* [, ...]] \| TABLE *schema.table* [, ...]}  
Uma cláusula que especifica se o Amazon Redshift vai atualizar todas as tabelas ou as tabelas com erros na tabela ou no esquema especificado. A atualização vai acionar as tabelas na tabela ou no esquema especificado para serem totalmente replicadas pelo banco de dados de origem.  
Consulte mais informações em [Integrações ETL zero](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.html) no *Guia de gerenciamento do Amazon Redshift*. Para obter mais informações sobre estados de integração, consulte [SVV\_INTEGRATION\_TABLE\_STATE](r_SVV_INTEGRATION_TABLE_STATE.md) e [SVV\_INTEGRATION](r_SVV_INTEGRATION.md).

QUERY\_ALL\_STATES [=] { TRUE \| FALSE }  
A cláusula QUERY\_ALL\_STATES define se as tabelas de integração ETL zero podem ser consultadas em todos os estados (`Synced`, `Failed`, `ResyncRequired` e `ResyncInitiated`). Por padrão, uma tabela de integração ETL zero só pode ser consultada no estado `Synced`.

ACCEPTINVCHARS [=] { TRUE \| FALSE }  
A cláusula ACCEPTINVCHARS define se as tabelas de integração ETL zero devem continuar com a ingestão quando caracteres inválidos são detectados para o tipo de dados VARCHAR. Quando um caractere inválido é encontrado, ele é substituído por um caractere padrão `?`.

REFRESH\_INTERVAL <intervalo>  
A cláusula REFRESH\_INTERVAL define o intervalo de tempo aproximado, em segundos, para atualizar os dados da origem de ETL zero para o banco de dados de destino. O `interval` pode ser definido de 0 a 432.000 segundos (5 dias) para integrações ETL zero cujo tipo de origem é o Aurora MySQL, o Aurora PostgreSQL ou o RDS para MySQL. Para integrações ETL zero do Amazon DynamoDB, o `interval` pode ser definido de 900 a 432.000 segundos (15 minutos a 5 dias).  
Consulte mais informações sobre a criação de bancos de dados com integrações ETL zero em [Criar bancos de dados de destino no Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html) no *Guia de gerenciamento do Amazon Redshift*.

TRUNCATECOLUMNS [=] { TRUE \| FALSE }  
A cláusula TRUNCATECOLUMNS define se as tabelas de Integração ETL zero devem continuar com a ingestão quando os valores dos atributos das colunas VARCHAR ou SUPER estão além do limite. Quando `TRUE`, os valores são truncados para caber na coluna e os valores dos atributos JSON em excesso são truncados para caber na coluna SUPER.

HISTORY\_MODE [=] {TRUE \| FALSE} [ FOR { {ALL} TABLES [IN SCHEMA schema [, ...]] \| TABLE schema.table [, ...]} ]  
Uma cláusula que especifica se o Amazon Redshift definirá o modo histórico para todas as tabelas ou para tabelas no esquema especificado que participam da integração ETL zero. Essa opção é aplicável somente para bancos de dados criados para integração ETL zero.  
A cláusula HISTORY\_MODE pode ser definida como `TRUE` ou `FALSE`. O padrão é `FALSE`. Ativar e desativar o modo histórico só é aplicável às tabelas que estão no estado `Synced`. Consulte informações sobre HISTORY\_MODE em [History mode](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-history-mode.html) no *Guia de gerenciamento do Amazon Redshift*.

## Observações de uso
<a name="r_ALTER_DATABASE-usage-notes"></a>

Comandos ALTER DATABASE são aplicáveis a sessões subsequentes, e não às atuais. Você precisa se reconectar ao banco de dados alterado para visualizar as alterações implementadas.

## Exemplos
<a name="r_ALTER_DATABASE-examples"></a>

O exemplo a seguir renomeia o banco de dados denominado TICKIT\_SANDBOX para TICKIT\_TEST: 

```
alter database tickit_sandbox rename to tickit_test;
```

O exemplo a seguir altera o proprietário do banco de dados TICKIT (o banco de dados atual) para DWUSER: 

```
alter database tickit owner to dwuser;
```

O seguinte exemplo altera a distinção entre maiúsculas de minúsculas do banco de dados sampledb:

```
ALTER DATABASE sampledb COLLATE CASE_INSENSITIVE;
```

O exemplo a seguir altera um banco de dados chamado **sampledb** com o nível de isolamento SNAPSHOT.

```
ALTER DATABASE sampledb ISOLATION LEVEL SNAPSHOT;
```

O exemplo a seguir atualiza as tabelas **schema1.sample\_table1** e **schema2.sample\_table2** no banco de dados **sample\_integration\_db** na integração ETL zero.

```
ALTER DATABASE sample_integration_db INTEGRATION REFRESH TABLE schema1.sample_table1, schema2.sample_table2;
```

O exemplo a seguir atualiza todas as tabelas sincronizadas e com falha na integração ETL zero.

```
ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL tables;
```

O exemplo a seguir define o intervalo de atualização para integrações ETL zero como 600 segundos.

```
ALTER DATABASE sample_integration_db INTEGRATION SET REFRESH_INTERVAL 600;
```

O exemplo a seguir atualiza todas as tabelas presentes em `ErrorState` no esquema **sample\_schema**.

```
ALTER DATABASE sample_integration_db INTEGRATION REFRESH INERROR TABLES in SCHEMA sample_schema;
```

O exemplo a seguir ativa o modo histórico para a tabela `myschema.table1`.

```
ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true FOR TABLE myschema.table1
```

O exemplo a seguir ativa o modo histórico para todas as tabelas em `myschema`. 

```
ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true for ALL TABLES IN SCHEMA myschema
```