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