pg_constraint#

The pg_constraint system catalog table stores check, primary key, unique, foreign key, and exclusion constraints on tables. (Column constraints are not treated specially. Every column constraint is equivalent to some table constraint.) Not-null constraints are represented in the pg_attribute catalog table. Check constraints on domains are stored here, too.

column

type

references

description

oid

oid

Row identifier

conname

name

Constraint name (not necessarily unique!)

connamespace

oid

pg_namespace.oid

The object identifier of the namespace (schema) that contains this constraint.

contype

char

c = check constraint, f = foreign key constraint, p = primary key constraint, u = unique constraint, x = exclusion constraint.

condeferrable

boolean

Is the constraint deferrable?

condeferred

boolean

Is the constraint deferred by default?

kconvalidated

boolean

Has the constraint been validated? Currently, can only be false for foreign keys and CHECK constraints.

conrelid

oid

pg_class.oid

The table this constraint is on; 0 if not a table constraint.

contypid

oid

pg_type.oid

The domain this constraint is on; 0 if not a domain constraint.

conindid

oid

pg_class.oid

The index supporting this constraint, if it’s a unique, primary key, foreign key, or exclusion constraint; else 0

conparentid

oid

pg_constraint.oid

The corresponding constraint in the parent partitioned table, if this is a constraint in a partition; else 0

confrelid

oid

pg_class.oid

If a foreign key, the referenced table; else 0.

confupdtype

char

Foreign key update action code.

confdeltype

char

Foreign key deletion action code.

confmatchtype

char

Foreign key match type.

conislocal

boolean

This constraint is defined locally for the relation. Note that a constraint can be locally defined and inherited simultaneously.

coninhcount

integer

The number of direct inheritance ancestors this constraint has. A constraint with a nonzero number of ancestors cannot be dropped nor renamed.

connoinherit

boolean

This constraint is defined locally for the relation. It is a non-inheritable constraint.

conkey

smallint[]

pg_attribute.attnum

If a table constraint, list of columns which the constraint constrains.

confkey

smallint[]

pg_attribute.attnum

If a foreign key, list of the referenced columns.

conpfeqop

oid[]

pg_operator.oid

If a foreign key, list of the equality operators for PK = FK comparisons.

conppeqop

oid[]

pg_operator.oid

If a foreign key, list of the equality operators for PK = PK comparisons.

conffeqop

oid[]

pg_operator.oid

If a foreign key, list of the equality operators for FK = FK comparisons.

conexclop

oid[]

pg_operator.oid

If an exclusion constraint, list of the per-column exclusion operators.

conbin

pg_node_tree

If a check constraint, an internal representation of the expression. (It is recommended to use pg_get_constraintdef() to extract the definition of a check constraint.)