ALTER DOMAIN

Nome

ALTER DOMAIN  --  altera a definição de um domínio

Sinopse

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
 

Descrição

O comando ALTER DOMAIN altera a definição de um domínio existente. Existem várias subformas:

SET/DROP DEFAULT

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.

SET/DROP NOT NULL

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.

ADD restrição_de_domínio

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.

DROP CONSTRAINT

Esta forma remove restrições no domínio.

OWNER

Esta forma torna o usuário especificado o dono do domínio.

SET SCHEMA

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).

Parâmetros

nome

O nome (opcionalmente qualificado pelo esquema) do domínio existente a ser alterado.

restrição_de_domínio

Nova restrição de domínio para o domínio.

nome_da_restrição

Nome da restrição existente a ser removida.

CASCADE

Remove, automaticamente, os objetos que dependem da restrição.

RESTRICT

Recusa remover a restrição se existirem objetos que dependem da mesma. Este é o padrão.

novo_dono

O nome de usuário do novo dono do domínio.

novo_esquema

O novo esquema do domínio.

Exemplos

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;
  

Compatibilidade

O comando ALTER DOMAIN está em conformidade com o padrão SQL, exceto pelas variantes OWNER e SET SCHEMA que são extensões do PostgreSQL.

Consulte também

CREATE DOMAIN, DROP DOMAIN
SourceForge.net Logo CSS válido!