ALTER DATABASE

ALTER DATABASE — modifica um banco de dados

Sinopse

ALTER DATABASE nome [ [ WITH ] opção [ ... ] ]

onde opção pode ser:

    ALLOW_CONNECTIONS permite_conexões
    CONNECTION LIMIT limite_de_conexões
    IS_TEMPLATE é_modelo

ALTER DATABASE nome​
    RENAME TO novo_nome
ALTER DATABASE nome​
    OWNER TO {
        novo_dono
      | CURRENT_ROLE
      | CURRENT_USER
      | SESSION_USER
    }
ALTER DATABASE nome​
    SET TABLESPACE novo_espaço_de_tabelas
ALTER DATABASE nome​
    REFRESH COLLATION VERSION
ALTER DATABASE nome​
    SET parâmetro_de_configuração { TO | = } { valor | DEFAULT }
ALTER DATABASE nome​
    SET parâmetro_de_configuração FROM CURRENT
ALTER DATABASE nome​
    RESET parâmetro_de_configuração
ALTER DATABASE nome​
    RESET ALL

Descrição

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.

Parâmetros

nome

O nome do banco de dados cujos atributos devem ser alterados.

permite_conexões

Se for falso, ninguém poderá se conectar a este banco de dados.

limite_de_conexões

Quantas 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_nome

O novo nome do banco de dados.

novo_dono

O novo dono do banco de dados.

novo_espaço_de_tabelas

O novo espaço de tabelas padrão do banco de dados.

REFRESH COLLATION VERSION

Atualiza a versão da ordenação do banco de dados. Veja Notas para obter mais informações.

parâmetro_de_configuração
valor

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.

Notas

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.

Exemplos

Para desativar varreduras de índice por padrão no banco de dados teste:

ALTER DATABASE teste SET enable_indexscan TO off;

Conformidade

O comando ALTER DATABASE é uma extensão do PostgreSQL.

Veja também

CREATE DATABASE, DROP DATABASE, SET, CREATE TABLESPACE