30.15. domains

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)

Notas

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

SourceForge.net Logo CSS válido!