A visão domains contém todos os domínios definidos no banco de dados corrente. [1] [2]
Tabela 30-13. Colunas de domains
Nome | Tipo de dado | Descrição |
---|---|---|
domain_catalog | sql_identifier | Nome do banco de dados que contém o domínio (sempre o banco de dados corrente) |
domain_schema | sql_identifier | Nome do esquema que contém o domínio |
domain_name | sql_identifier | Nome do domínio |
data_type | character_data | Tipo de dado do domínio, se for um tipo nativo, ou ARRAY se for uma matriz (neste caso deve ser consultada a visão element_types), ou então USER-DEFINED (neste caso o tipo é identificado em udt_name e nas colunas associadas). |
character_maximum_length | cardinal_number | Quando o domínio tem um tipo cadeia de caracteres ou de bits, o comprimento máximo declarado; nulo para todos os outros tipos de dado, ou se o comprimento máximo não for declarado. |
character_octet_length | cardinal_number | Quando o domínio tem um tipo caractere, o comprimento máximo possível em octetos (bytes) do dado (não deve ser de interesse dos usuários do PostgreSQL); nulo para todos os outros tipos de dado. |
character_set_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
character_set_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
character_set_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
collation_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
collation_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
collation_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
numeric_precision | cardinal_number | Quando o domínio possui um tipo numérico, esta coluna contém a precisão (declarada ou implícita) do tipo de dado desta coluna. A precisão indica o número de dígitos significativos. Pode ser expresso em termos decimais (base 10), ou binários (base 2), conforme especificado na coluna numeric_precision_radix. Para todos ou outros tipos de dado, esta coluna é nula. |
numeric_precision_radix | cardinal_number | Quando o domínio tem um tipo numérico, esta coluna indica em que base estão expressos os valores nas colunas numeric_precision e numeric_scale. O valor é 2 ou 10. Para todos ou outros tipos de dado, esta coluna é nula. |
numeric_scale | cardinal_number | Quando o domínio possui um tipo numérico exato, esta coluna contém a escala (declarada ou implícita) do tipo desta coluna. A escala indica o número de dígitos significativos à direita do ponto decimal. Pode ser expresso em termos decimais (base 10), ou binários (base 2), conforme especificado na coluna numeric_precision_radix. Para todos ou outros tipos de dado, esta coluna é nula. |
datetime_precision | cardinal_number | Quando o domínio tem um tipo data, hora ou intervalo, a precisão declarada; nulo para todos os outros tipos de dado, ou se a precisão não for declarada. |
interval_type | character_data | Ainda não implementado |
interval_precision | character_data | Ainda não implementado |
domain_default | character_data | Expressão padrão do domínio |
udt_catalog | sql_identifier | Nome do banco de dados onde o tipo de dado do domínio está definido (sempre o banco de dados corrente) |
udt_schema | sql_identifier | Nome do esquema onde o tipo de dado do domínio está definido |
udt_name | sql_identifier | Nome do tipo de dado do domínio |
scope_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
scope_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
scope_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
maximum_cardinality | cardinal_number | Sempre nulo, porque a matrizes sempre possuem uma cardinalidade máxima não definida no PostgreSQL |
dtd_identifier | sql_identifier | O identificador do descritor do tipo de dado do domínio, único entre os descritores de tipo de dado pertencentes ao domínio (o que é óbvio, porque o domínio somente contém um descritor de tipo de dado). A utilidade principal é para fazer junção com outras instâncias destes identificadores (O formato específico do identificador não é definido, e também não há garantia que permaneça o mesmo nas versões futuras). |
Exemplo: Consultar a visão domains. [3]
=> \x Ativada a exibição expandida. => SELECT * FROM information_schema.domains WHERE domain_schema='public'; -[ LINHA 1 ]-------------+------------------------------------------- domain_catalog | teste domain_schema | public domain_name | cardinal_number data_type | integer character_maximum_length | character_octet_length | character_set_catalog | character_set_schema | character_set_name | collation_catalog | collation_schema | collation_name | numeric_precision | 32 <- Precisão de 32 bits numeric_precision_radix | 2 <- Sinaliza binário (bits) numeric_scale | 0 datetime_precision | interval_type | interval_precision | domain_default | udt_catalog | teste udt_schema | pg_catalog udt_name | int4 scope_catalog | scope_schema | scope_name | maximum_cardinality | dtd_identifier | 1 -[ LINHA 2 ]-------------+------------------------------------------- domain_catalog | teste domain_schema | public domain_name | character_data data_type | character varying character_maximum_length | character_octet_length | 1073741824 character_set_catalog | character_set_schema | character_set_name | collation_catalog | collation_schema | collation_name | numeric_precision | numeric_precision_radix | numeric_scale | datetime_precision | interval_type | interval_precision | domain_default | udt_catalog | teste udt_schema | pg_catalog udt_name | varchar scope_catalog | scope_schema | scope_name | maximum_cardinality | dtd_identifier | 1 -[ LINHA 3 ]-------------+------------------------------------------- domain_catalog | teste domain_schema | public domain_name | sql_identifier data_type | character varying character_maximum_length | character_octet_length | 1073741824 character_set_catalog | character_set_schema | character_set_name | collation_catalog | collation_schema | collation_name | numeric_precision | numeric_precision_radix | numeric_scale | datetime_precision | interval_type | interval_precision | domain_default | udt_catalog | teste udt_schema | pg_catalog udt_name | varchar scope_catalog | scope_schema | scope_name | maximum_cardinality | dtd_identifier | 1 -[ LINHA 4 ]-------------+------------------------------------------- domain_catalog | teste domain_schema | public domain_name | time_stamp data_type | timestamp without time zone character_maximum_length | character_octet_length | character_set_catalog | character_set_schema | character_set_name | collation_catalog | collation_schema | collation_name | numeric_precision | numeric_precision_radix | numeric_scale | datetime_precision | 2 interval_type | interval_precision | domain_default | ('now'::text)::timestamp(2) with time zone udt_catalog | teste udt_schema | pg_catalog udt_name | timestamp scope_catalog | scope_schema | scope_name | maximum_cardinality | dtd_identifier | 1 => \x Desativada a exibição expandida. => \dD Lista de domínios Esquema | Nome | Tipo | Modificador ---------+-----------------+--------------------------------+---------------------------------------------------- public | cardinal_number | integer | public | character_data | character varying | public | sql_identifier | character varying | public | time_stamp | timestamp(2) without time zone | default ('now'::text)::timestamp(2) with time zone (4 linhas)
[1] |
DOMAINS — visão — Identifica os domínios definidos neste catálogo acessíveis por um determinado usuário ou grupo. (ISO-ANSI Working Draft) Information and Definition Schemas (SQL/Schemata), ISO/IEC 9075-11:2003 (E) (N. do T.) |
[2] |
A visão DOMAINS contém uma linha para cada tipo de dado definido por usuário, que pode ser acessado pelo usuário corrente no banco de dados corrente. A visão INFORMATION_SCHEMA.DOMAINS é baseada nas tabelas do sistema spt_data type_info, systypes, syscomments, sysconfigures e syscharsets. SQL Server Books Online (N. do T.) |
[3] |
Exemplo escrito pelo tradutor, não fazendo parte do manual original. |