The catalog pg_constraint 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, not here.

User-defined constraint triggers (created with CREATE CONSTRAINT TRIGGER) also give rise to an
entry in this table.

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

consrc

text

If a check constraint, a human-readable
representation of the expression

In the case of an exclusion constraint, conkey is only useful for constraint elements
that are simple column references. For other cases, a zero
appears in conkey and the associated
index must be consulted to discover the expression that is
constrained. (conkey thus has the
same contents as pg_index.indkey for the index.)

Note:consrc is not
updated when referenced objects change; for example, it won't
track renaming of columns. Rather than relying on this field,
it's best to use pg_get_constraintdef() to extract the
definition of a check constraint.

Note:pg_class.relchecks
needs to agree with the number of check-constraint entries
found in this table for each relation.