ALTER DOMAIN nome { SET DEFAULT expressão | DROP DEFAULT } ALTER DOMAIN nome { SET | DROP } NOT NULL ALTER DOMAIN nome ADD restrição_de_domínio ALTER DOMAIN nome DROP CONSTRAINT nome_da_restrição [ RESTRICT | CASCADE ] ALTER DOMAIN nome OWNER TO novo_dono ALTER DOMAIN nome SET SCHEMA novo_esquema
O comando ALTER DOMAIN altera a definição de um domínio existente. Existem várias subformas:
Estas formas definem ou removem o valor padrão para o domínio. Deve ser observado que estes padrões somente se aplicam aos comandos INSERT subseqüentes; as linhas já existentes nas tabelas que utilizam o domínio não são afetadas.
Estas formas alteram se o domínio está marcado para aceitar valores nulos ou para rejeitar valores nulos. O comando SET NOT NULL somente pode ser utilizado quando as colunas que utilizam o domínio não contêm valores nulos.
Esta forma adiciona uma nova restrição ao domínio, utilizando a mesma sintaxe de CREATE DOMAIN. Somente será bem-sucedida se todas as colunas que utilizam o domínio satisfizerem a nova restrição.
Esta forma remove restrições no domínio.
Esta forma torna o usuário especificado o dono do domínio.
Esta forma muda o esquema do domínio. Todas as restrições associadas ao domínio também são movidas para o novo esquema.
É necessário ser o dono do domínio para utilizar ALTER DOMAIN. Para mudar o esquema do domínio também é necessário possuir o privilégio CREATE no novo esquema. Para alterar o dono, também é necessário ser um membro direto ou indireto do novo papel (role) dono, e este papel deve possuir o privilégio CREATE no esquema do domínio (Estas restrições garantem que alterar o dono não faz nada que não poderia ser feito removendo e recriando o domínio. Entretanto, de qualquer forma, um superusuário sempre pode alterar o dono de qualquer domínio).
O nome (opcionalmente qualificado pelo esquema) do domínio existente a ser alterado.
Nova restrição de domínio para o domínio.
Nome da restrição existente a ser removida.
Remove, automaticamente, os objetos que dependem da restrição.
Recusa remover a restrição se existirem objetos que dependem da mesma. Este é o padrão.
O nome de usuário do novo dono do domínio.
O novo esquema do domínio.
Para adicionar a restrição NOT NULL ao domínio:
ALTER DOMAIN cep SET NOT NULL;
Para remover a restrição NOT NULL do domínio:
ALTER DOMAIN cep DROP NOT NULL;
Para adicionar uma restrição de verificação ao domínio:
ALTER DOMAIN cep ADD CONSTRAINT chk_cep CHECK (char_length(VALUE) = 8);
Para remover uma restrição de verificação do domínio:
ALTER DOMAIN cep DROP CONSTRAINT chk_cep;
Para mover o domínio para outro esquema:
ALTER DOMAIN cep SET SCHEMA clientes;