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.