Updated on 2024-05-07 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

Specifies whether the constraint is deferrable.

  • true: yes
  • false: no

condeferred

Boolean

Specifies whether the constraint can be deferrable by default.

  • true: yes
  • false: no

convalidated

Boolean

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

  • true: valid
  • false: invalid

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

Specifies whether the constraint is defined locally for the relation.

  • true: yes
  • false: no

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

Specifies whether the constraint can be inherited.

  • true: yes
  • false: no

consoft

Boolean

Specifies whether the column indicates an informational constraint.

  • true: yes
  • false: no

conopt

Boolean

Specifies whether you can use the informational constraint to optimize the execution plan.

  • true: yes
  • false: no

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

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.
  • relchecks of 13.2.53 PG_CLASS must agree with the number of check-constraint entries found in the table for each relationship.