52.13. pg_constraint #

O catálogo pg_constraint armazena restrições de verificação, não-nulo, chave primária, unicidade, chave estrangeira e exclusão em tabelas. (As restrições de coluna não são tratadas de forma especial. Toda restrição de coluna é equivalente a alguma restrição de tabela.)

Gatilhos de restrição definidos pelo usuário (criados usando CREATE TRIGGER) também geram entrada nesta tabela.

As restrições de verificação em domínios também são armazenadas aqui.

Tabela 52.13. Colunas de pg_constraint

Coluna Tipo de dados

Descrição

oid oid

Identificador da linha

conname name

Nome da restrição (não necessariamente único!)

connamespace oid (referencia pg_namespace.oid)

OID do espaço de nomes que contém esta restrição

contype char

c = restrição de verificação (check), f = restrição de chave estrangeira, n = restrição de não-nulo, p = restrição de chave primária, u = restrição de unicidade, t = restrição de gatilho, x = restrição de exclusão

condeferrable bool

A restrição é postergável?

condeferred bool

A restrição é postergada por padrão?

conenforced bool

A restrição é imposta?

convalidated bool

A restrição foi validada?

conrelid oid (referencia pg_class.oid)

Tabela em que esta restrição está ativa; zero se não for uma restrição de tabela

contypid oid (referencia pg_type.oid)

Domínio em que esta restrição se encontra; zero se não for uma restrição de domínio

conindid oid (referencia pg_class.oid)

O índice que dá suporte a esta restrição, se for uma restrição de unicidade, de chave primária, de chave estrangeira ou de exclusão; senão zero

conparentid oid (referencia pg_constraint.oid)

A restrição correspondente da tabela particionada mãe, se ela for uma restrição em uma partição; senão zero

confrelid oid (referencia pg_class.oid)

Se for uma chave estrangeira, a tabela referenciada; senão zero

confupdtype char

Código da ação de atualização da chave estrangeira: a = nenhuma ação, r = restringir, c = cascata, n = definir como nulo, d = definir com o valor padrão

confdeltype char

Código da ação de exclusão da chave estrangeira: a = nenhuma ação, r = restringir, c = cascata, n = definir como nulo, d = definir com o valor padrão

confmatchtype char

Tipo de correspondência da chave estrangeira: f = completa, p = parcial, s = simples

conislocal bool

Esta restrição é definida localmente para a relação. Note que uma restrição pode ser definida localmente e herdada simultaneamente.

coninhcount int2

O número de ancestrais de herança direta que esta restrição possui. Uma restrição com um número diferente de zero de ancestrais não pode ser excluída nem renomeada.

connoinherit bool

Esta restrição é definida localmente para a relação. É uma restrição não herdável.

conperiod bool

Esta restrição é definida com WITHOUT OVERLAPS (para chaves primárias e restrições de unicidade) ou PERIOD (para chaves estrangeiras).

conkey int2[] (referencia pg_attribute.attnum)

Se for uma restrição de tabela (incluindo chaves estrangeiras, mas não restrições de gatilho), a lista das colunas restringidas

confkey int2[] (referencia pg_attribute.attnum)

Se for uma chave estrangeira, a lista das colunas referenciadas

conpfeqop oid[] (referencia pg_operator.oid)

Se for uma chave estrangeira, a lista dos operadores de igualdade para comparações PK = FK

conppeqop oid[] (referencia pg_operator.oid)

Se for uma chave estrangeira, a lista dos operadores de igualdade para comparações PK = PK

conffeqop oid[] (referencia pg_operator.oid)

Se for uma chave estrangeira, a lista dos operadores de igualdade para comparações FK = FK

confdelsetcols int2[] (referencia pg_attribute.attnum)

Se for uma chave estrangeira com uma ação de exclusão SET NULL ou SET DEFAULT, a lista das colunas que serão atualizadas. Se for nulo, todas as colunas referenciadas serão atualizadas.

conexclop oid[] (referencia pg_operator.oid)

Se for uma restrição de exclusão ou uma restrição de chave primária/unicidade WITHOUT OVERLAPS, a lista dos operadores de exclusão por coluna.

conbin pg_node_tree

Se for uma restrição de verificação, a representação interna da expressão. (Recomenda-se usar pg_get_constraintdef() para extrair a definição de uma restrição de verificação.)


No caso de uma restrição de exclusão, conkey só é útil para elementos de restrição que são simples referências de coluna. Para outros casos, aparece um zero em conkey e o índice associado deve ser consultado para descobrir a expressão que está restrita. (Portanto,conkey tem o mesmo conteúdo que pg_index.indkey para o índice.)

Nota

pg_class.relchecks precisa concordar com o número de entradas de restrição de verificação encontradas nesta tabela para cada relação.