CREATE DOMAIN nome [AS] tipo_de_dado [ DEFAULT expressão ] [ restrição [ ... ] ] onde restrição é: [ CONSTRAINT nome_da_restrição ] { NOT NULL | NULL | CHECK (expressão) }
O comando CREATE DOMAIN cria um domínio de dados. O usuário que cria o domínio se torna o seu dono. [1]
Se o nome do esquema for fornecido (por exemplo, CREATE DOMAIN meu_esquema.meu_dominio ...), então o domínio é criado no esquema especificado, senão é criado no esquema corrente. O nome do domínio deve ser único entre os tipos e domínios existentes no esquema.
Domínios são úteis para abstrair campos comuns entre tabelas em um único local para manutenção. Por exemplo, uma coluna de endereço de correio eletrônico pode ser usada em várias tabelas, todas com as mesmas propriedades. Defina o domínio e o utilize em vez de definir as restrições em cada tabela individualmente.
Este exemplo cria o tipo de dado cod_nacao (código da nação), em seguida o utiliza na definição da tabela:
CREATE DOMAIN cod_nacao char(2) NOT NULL; CREATE TABLE tbl_nacao (id integer, nacao cod_nacao);
[1] |
Um domínio é um objeto nomeado definido pelo usuário que pode ser especificado como uma alternativa ao tipo de dado em certos locais onde o tipo de dado pode ser especificado. O domínio consiste do tipo de dado, possivelmente a opção default, e zero ou mais restrições (domínio). A restrição de domínio se aplica a todas as colunas baseadas neste domínio, operando como uma restrição de tabela para cada coluna deste tipo. As restrições de domínio se aplicam apenas às colunas baseadas no domínio associado. A restrição de domínio é aplicada a todo valor resultante de uma operação de conversão (cast) para o domínio. (ISO-ANSI Working Draft) Framework (SQL/Framework), August 2003, ISO/IEC JTC 1/SC 32, 25-jul-2003, ISO/IEC 9075-2:2003 (E) (N. do T.) |