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. |
NOTICE:
- 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.
openGauss 2025-04-28 22:42:47