Updated on 2023-10-23 GMT+08:00

PG_CONSTRAINT

PG_CONSTRAINT records check, primary key, and unique constraints on tables.

Table 1 PG_CONSTRAINT columns

Name

Type

Description

oid

oid

Row identifier (hidden attribute, which must be specified)

conname

name

Constraint name (not necessarily unique)

connamespace

oid

OID of the namespace that contains the constraint

contype

"char"

  • c: check constraint
  • p: primary key constraint
  • u: unique constraint
  • t: trigger constraint
  • x: mutual exclusion constraint
  • f: foreign key constraint
  • s: clustering constraint
  • i: invalid constraint

condeferrable

boolean

Whether the constraint can be deferrable

condeferred

boolean

Whether the constraint can be deferrable by default

convalidated

boolean

Whether the constraint is valid Currently, it can be set to false only for foreign key and check constraints.

conrelid

oid

Table containing this constraint (0 if it is not a table constraint)

contypid

oid

Domain containing this constraint (0 if it is not a domain constraint)

conindid

oid

ID of the index associated with the constraint

confrelid

oid

Referenced table if this constraint is a foreign key. Otherwise, the value is 0.

confupdtype

"char"

Foreign key update action code
  • a: no action
  • r: restriction
  • c: cascading
  • n: The parameter is set to null.
  • d: The default value is used.

confdeltype

"char"

Foreign key deletion action code
  • a: no action
  • r: restriction
  • c: cascading
  • n: The parameter is set to null.
  • d: The default value is used.

confmatchtype

"char"

Foreign key match type
  • f: full match
  • p: partial match
  • u: unspecified (The NULL value can be matched if f is specified.)

conislocal

boolean

Whether the local constraint is defined for the relationship

coninhcount

integer

Number of direct inheritance parent tables that this constraint has. When the value is not 0, the constraint cannot be deleted or renamed.

connoinherit

boolean

Whether the constraint can be inherited

consoft

boolean

Whether the column indicates an informational constraint

conopt

boolean

Whether you can use the informational constraint to optimize the execution plan

conkey

smallint[]

Column list of the constrained control if this column is a table constraint

confkey

smallint[]

List of referenced columns if this column is a foreign key.

conpfeqop

oid[]

ID list of the equality operators for PK = FK comparisons if this column is a foreign key.

conppeqop

oid[]

ID list of the equality operators for PK = PK comparisons if this column is a foreign key.

conffeqop

oid[]

ID list of the equality operators for FK = FK comparisons if this column is a foreign key. The value is empty because foreign keys are not supported currently.

conexclop

oid[]

ID list of the per-column exclusion operators if this column is an exclusion constraint

conbin

pg_node_tree

Internal representation of the expression if this column is a check constraint

consrc

text

Human-readable representation of the expression if this column is a check constraint

conincluding

smallint[]

Not for constraint, but will be included in the attribute column of INDEX.

  • consrc is not updated when referenced objects change and does not track new column names. Instead of relying on this column to update, you are advised to use pg_get_constraintdef() to extract the definition of a check constraint.
  • pg_class.relchecks must agree with the number of check-constraint entries found in the table for each relationship.