PG_CONSTRAINT
PG_CONSTRAINT records check, primary key, unique, and foreign key constraints on the tables.
Column | Type | Description |
|---|---|---|
conname | Name | Constraint name (not necessarily unique) |
connamespace | OID | OID of the namespace that contains the constraint |
contype | Char |
|
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, only foreign key and check constraints can be set to false. |
conrelid | OID | Table containing this constraint. The value is 0 if it is not a table constraint. |
contypid | OID | Domain containing this constraint. The value is 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
|
confdeltype | Char | Foreign key deletion action code
|
confmatchtype | Char | Foreign key match type
|
conislocal | boolean | Whether the local constraint is defined for the relationship |
coninhcount | Integer | Number of direct inheritance parent tables this constraint has. When the number 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 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 |
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 |

- consrc is not updated when referenced objects change; for example, it will not track renaming of columns. You are advised to use pg_get_constraintdef () to extract the definition of a check constraint instead of depending on this column.
- pg_class.relchecks must be consistent with the number of check-constraint entries in this table for each relationship.
Example
Query whether a specified table has a primary key.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | CREATE TABLE t1 ( C_CUSTKEY BIGINT , C_NAME VARCHAR(25) , C_ADDRESS VARCHAR(40) , C_NATIONKEY INT , C_PHONE CHAR(15) , C_ACCTBAL DECIMAL(15,2), CONSTRAINT C_CUSTKEY_KEY PRIMARY KEY(C_CUSTKEY,C_NAME) ) DISTRIBUTE BY HASH(C_CUSTKEY,C_NAME); SELECT conname FROM pg_constraint WHERE conrelid = 't1'::regclass AND contype = 'p'; conname --------------- c_custkey_key (1 row) |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.

