Skip to content

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.

columntypereferencesdescription
oidoidRow identifier
connamenameConstraint name (not necessarily unique!)
connamespaceoidpg_namespace.oidThe object identifier of the namespace (schema) that contains this constraint.
contypecharc = check constraint, f = foreign key constraint, p = primary key constraint, u = unique constraint, x = exclusion constraint.
condeferrablebooleanIs the constraint deferrable?
condeferredbooleanIs the constraint deferred by default?
convalidatedbooleanHas the constraint been validated? Currently, can only be false for foreign keys and CHECK constraints.
conrelidoidpg_class.oidThe table this constraint is on; 0 if not a table constraint.
contypidoidpg_type.oidThe domain this constraint is on; 0 if not a domain constraint.
conindidoidpg_class.oidThe index supporting this constraint, if it's a unique, primary key, foreign key, or exclusion constraint; else 0
conparentidoidpg_constraint.oidThe corresponding constraint in the parent partitioned table, if this is a constraint in a partition; else 0
confrelidoidpg_class.oidIf a foreign key, the referenced table; else 0.
confupdtypecharForeign key update action code.
confdeltypecharForeign key deletion action code.
confmatchtypecharForeign key match type.
conislocalbooleanThis constraint is defined locally for the relation. Note that a constraint can be locally defined and inherited simultaneously.
coninhcountintegerThe number of direct inheritance ancestors this constraint has. A constraint with a nonzero number of ancestors cannot be dropped nor renamed.
connoinheritbooleanThis constraint is defined locally for the relation. It is a non-inheritable constraint.
conkeysmallint[]pg_attribute.attnumIf a table constraint, list of columns which the constraint constrains.
confkeysmallint[]pg_attribute.attnumIf a foreign key, list of the referenced columns.
conpfeqopoid[]pg_operator.oidIf a foreign key, list of the equality operators for PK = FK comparisons.
conppeqopoid[]pg_operator.oidIf a foreign key, list of the equality operators for PK = PK comparisons.
conffeqopoid[]pg_operator.oidIf a foreign key, list of the equality operators for FK = FK comparisons.
conexclopoid[]pg_operator.oidIf an exclusion constraint, list of the per-column exclusion operators.
conbinpg_node_treeIf 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.)

Parent topic: System Catalogs Definitions