O catálogo pg_constraint armazena restrições de verificação, chave primária, unicidade e chave estrangeira em tabelas (As restrições de coluna não são tratadas de forma especial, porque toda restrição de coluna equivale a alguma restrição de tabela). As restrições de não-nulo são representadas no catálogo pg_attribute.
As restrições de verificação em domínios também são armazenadas neste catálogo.
Tabela 42-10. Colunas de pg_constraint
Nome | Tipo | Referencia | Descrição |
---|---|---|---|
conname | name | Nome da restrição (não necessariamente única!) | |
connamespace | oid | pg_namespace.oid | OID do espaço de nomes que contém a restrição. |
contype | char | c = restrição de verificação; f = restrição de chave estrangeira; p = restrição de chave primária; u = restrição de unicidade. | |
condeferrable | bool | A restrição é postergável? | |
condeferred | bool | A restrição é postergada por padrão? | |
conrelid | oid | pg_class.oid | Tabela onde esta restrição se encontra; 0 zero se não for uma restrição de tabela |
contypid | oid | pg_type.oid | Domínio onde esta restrição se encontra; 0 se não for uma restrição de domínio |
confrelid | oid | pg_class.oid | Se for uma chave estrangeira, a tabela referenciada; senão 0 |
confupdtype | char | Código da ação de atualização da chave estrangeira | |
confdeltype | char | Código da ação de exclusão da chave estrangeira | |
confmatchtype | char | Tipo de correspondência da chave estrangeira | |
conkey | int2[] | pg_attribute.attnum | Se for uma restrição de tabela, a lista de colunas que a restrição abrange |
confkey | int2[] | pg_attribute.attnum | Se for uma chave estrangeira, a lista de colunas referenciadas |
conbin | text | Se for uma restrição de verificação, a representação interna da expressão | |
consrc | text | Se for uma restrição de verificação, a representação humanamente legível da expressão |
Nota: consrc não é atualizada quando os objetos referenciados mudam; por exemplo, não acompanha a mudança dos nomes das colunas. Em vez de confiar neste campo, é melhor utilizar pg_get_constraintdef() para obter a definição da restrição de verificação.
Nota: pg_class.relchecks deve condizer com o número de entradas de restrição de verificação encontradas nesta tabela para uma determinada relação.