PG_CONSTRAINT
PG_CONSTRAINT records check, primary key, unique, and foreign key constraints on the tables.
Name |
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. Rather than relying on this field, it's best to use pg_get_constraintdef() to extract the definition of a check constraint.
- 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.