ALTER DATABASE — modifica um banco de dados
ALTER DATABASEnome[ [ WITH ]opção[ ... ] ] ondeopçãopode ser: ALLOW_CONNECTIONSpermite_conexõesCONNECTION LIMITlimite_de_conexõesIS_TEMPLATEé_modeloALTER DATABASEnome RENAME TOnovo_nomeALTER DATABASEnome OWNER TO {novo_dono| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER DATABASEnome SET TABLESPACEnovo_espaço_de_tabelasALTER DATABASEnome REFRESH COLLATION VERSION ALTER DATABASEnome SETparâmetro_de_configuração{ TO | = } {valor| DEFAULT } ALTER DATABASEnome SETparâmetro_de_configuraçãoFROM CURRENT ALTER DATABASEnome RESETparâmetro_de_configuraçãoALTER DATABASEnome RESET ALL
O comando ALTER DATABASE altera os atributos de
um banco de dados.
A primeira forma altera certas configurações por banco de dados. (Veja os detalhes abaixo.) Somente o dono do banco de dados, ou um superusuário, podem alterar estas configurações.
A segunda forma altera o nome do banco de dados.
Somente o dono do banco de dados, ou um superusuário, podem mudar o
nome de um banco de dados; os donos não superusuários também devem
possuir o privilégio CREATEDB.
O banco de dados corrente não pode ter o nome mudado. (Deve-se
conectar a um banco de dados diferente se for necessário fazer isto.)
A terceira forma altera o dono do banco de dados.
Para alterar o dono, é necessário ser capaz de executar o comando
SET ROLE para a função de banco de dados
(role) que será a nova dona,
e também é necessário possuir o privilégio CREATEDB.
(Note que os superusuários possuem todos estes privilégios
automaticamente.)
A quarta forma altera o espaço de tabelas padrão do banco de dados. Somente o dono do banco de dados, ou um superusuário, podem fazer isto; também é necessário possuir privilégio de criação para o novo espaço de tabelas. Este comando move fisicamente quaisquer tabelas ou índices no antigo espaço de tabelas padrão do banco de dados para o novo espaço de tabelas. O novo espaço de tabelas padrão deve estar vazio para este banco de dados, e ninguém pode estar conectado ao banco de dados. As tabelas e índices em espaços de tabelas diferentes do padrão não são afetados. O método usado para copiar arquivos para o novo espaço de tabelas é afetado pela definição de file_copy_method.
As formas restantes alteram o padrão da sessão para uma variável de
configuração de tempo de execução para um banco de dados
PostgreSQL.
Sempre que uma nova sessão posterior for iniciada neste banco de
dados, o valor especificado se tornará o valor padrão da sessão.
O padrão específico do banco de dados prevalece sobre qualquer
configuração presente no arquivo postgresql.conf,
ou recebida na linha de comando do postgres.
Somente o dono do banco de dados, ou um superusuário, podem alterar
os padrões de sessão para um banco de dados.
Certas variáveis não podem ser configuradas dessa forma,
ou somente podem ser configuradas por um superusuário.
nomeO nome do banco de dados cujos atributos devem ser alterados.
permite_conexõesSe for falso, ninguém poderá se conectar a este banco de dados.
limite_de_conexõesQuantas conexões simultâneas podem ser feitas a este banco de dados. -1 (o padrão) significa sem limite.
é_modelo
Se for verdade, então este banco de dados pode ser clonado por
qualquer usuário com o privilégio CREATEDB;
se for falso, somente os superusuários, ou o dono do
banco de dados, podem cloná-lo.
novo_nomeO novo nome do banco de dados.
novo_donoO novo dono do banco de dados.
novo_espaço_de_tabelasO novo espaço de tabelas padrão do banco de dados.
REFRESH COLLATION VERSIONAtualiza a versão da ordenação do banco de dados. Veja Notas para obter mais informações.
parâmetro_de_configuraçãovalor
Define o valor padrão da sessão neste banco de dados, para o
parâmetro de configuração especificado, como o valor fornecido.
Se o valor for DEFAULT,
ou de forma equivalente for usado RESET,
a configuração específica do banco de dados será removida,
portanto, a configuração padrão de todo o sistema será usada
nas novas sessões.
Deve ser usado RESET ALL para limpar todas
as configurações específicas do banco de dados.
A cláusula SET FROM CURRENT salva o valor
corrente do parâmetro na sessão, como o valor específico do
banco de dados.
Veja o comando SET e Configuração do servidor para obter mais informações sobre os nomes e valores permitidos para os parâmetros.
Também é possível associar um padrão de sessão a uma função de banco de dados específica, em vez de a um banco de dados; veja ALTER ROLE. As configurações específicas da função de banco de dados prevalecem sobre as configurações específicas do banco de dados, se houver conflito.
Para desativar varreduras de índice por padrão no banco de dados
teste:
ALTER DATABASE teste SET enable_indexscan TO off;
O comando ALTER DATABASE é uma extensão do
PostgreSQL.