CREATE DOMAIN

Nome

CREATE DOMAIN -- cria um domínio

Sinopse

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

Descriçã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.

Parâmetros

nome
O nome (opcionalmente qualificado pelo esquema) do domínio a ser criado.
tipo_de_dado
O tipo de dado subjacente do domínio, podendo incluir especificadores de matrizes (arrays).
DEFAULT expressão
A cláusula DEFAULT especifica o valor padrão para as colunas com o tipo de dado do domínio. O valor é qualquer expressão sem variável (variable-free) (mas subconsultas não são permitidas). O tipo de dado da expressão padrão deve corresponder ao tipo de dado do domínio. Se o valor padrão não for especificado, então o valor nulo se torna o valor padrão. A expressão padrão é usada em toda operação de inserção que não especifica valor para a coluna. Se for definido o valor padrão para uma determinada coluna, este substitui o valor padrão associado ao domínio. Por sua vez, o valor padrão para o domínio substitui o valor padrão associado ao tipo de dado subjacente.
CONSTRAINT nome_da_restrição
Um nome opcional para a restrição. Se não for especificado, o sistema gera um nome.
NOT NULL
Os valores deste domínio não podem ser nulos.
NULL
Os valores deste domínio podem ser nulos. Este é o padrão. Esta cláusula tem somente a finalidade de manter a compatibilidade com os bancos de dados SQL fora do padrão. Seu uso é desaconselhado nas novas aplicações.
CHECK (expressão)
A cláusula CHECK especifica as restrições de integridade, ou testes, que os valores do domínio devem satisfazer. Cada restrição deve ser uma expressão que produz um resultado booleano. Deve ser utilizado o nome VALUE para fazer referência ao valor sendo testado. Atualmente as expressões CHECK não podem conter subconsultas, nem fazer referências a outras variáveis além de VALUE.

Exemplos

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

Compatibilidade

O comando CREATE DOMAIN está em conformidade com o padrão SQL.

Veja também

ALTER DOMAIN , DROP DOMAIN

Notas

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

SourceForge.net Logo