51.57. pg_trigger
  The catalog
  
   pg_trigger
  
  stores triggers on tables
   and views.
   See
  
   
    CREATE TRIGGER
   
  
  for more information.
 
   
    Table 51.57. 
    
     pg_trigger
    
    Columns
   
  
| Name | Type | References | Description | 
|---|---|---|---|
| 
        oid
        | 
        oid
        | Row identifier | |
| 
        tgrelid
        | 
        oid
        | 
        
          | The table this trigger is on | 
| 
        tgname
        | 
        name
        | Trigger name (must be unique among triggers of same table) | |
| 
        tgfoid
        | 
        oid
        | 
        
          | The function to be called | 
| 
        tgtype
        | 
        int2
        | Bit mask identifying trigger firing conditions | |
| 
        tgenabled
        | 
        char
        | Controls in which
       
        session_replication_role
       
       modes
       the trigger fires. 
        O
       = trigger fires in
       
        "
        
         origin
        
        "
       
       and
       
        "
        
         local
        
        "
       
       modes,
        D
       = trigger is disabled,
        R
       = trigger fires in
       
        "
        
         replica
        
        "
       
       mode,
        A
       = trigger fires always. | |
| 
        tgisinternal
        | 
        bool
        | True if trigger is internally generated (usually, to enforce
       the constraint identified by 
        tgconstraint
       ) | |
| 
        tgconstrrelid
        | 
        oid
        | 
        
          | The table referenced by a referential integrity constraint | 
| 
        tgconstrindid
        | 
        oid
        | 
        
          | The index supporting a unique, primary key, referential integrity, or exclusion constraint | 
| 
        tgconstraint
        | 
        oid
        | 
        
          | The 
        pg_constraint
       entry associated with the trigger, if any | 
| 
        tgdeferrable
        | 
        bool
        | True if constraint trigger is deferrable | |
| 
        tginitdeferred
        | 
        bool
        | True if constraint trigger is initially deferred | |
| 
        tgnargs
        | 
        int2
        | Number of argument strings passed to trigger function | |
| 
        tgattr
        | 
        int2vector
        | 
        
          | Column numbers, if trigger is column-specific; otherwise an empty array | 
| 
        tgargs
        | 
        bytea
        | Argument strings to pass to trigger, each NULL-terminated | |
| 
        tgqual
        | 
        pg_node_tree
        | Expression tree (in 
        nodeToString()
       representation) for the trigger's
        WHEN
       condition, or null
       if none | |
| 
        tgoldtable
        | 
        name
        | 
        REFERENCING
       clause name for
        OLD TABLE
       ,
       or null if none | |
| 
        tgnewtable
        | 
        name
        | 
        REFERENCING
       clause name for
        NEW TABLE
       ,
       or null if none | 
  Currently, column-specific triggering is supported only for
  
   UPDATE
  
  events, and so
  
   tgattr
  
  is relevant
   only for that event type.
  
   tgtype
  
  might
   contain bits for other event types as well, but those are presumed
   to be table-wide regardless of what is in
  
   tgattr
  
  .
 
Note
   When
   
    tgconstraint
   
   is nonzero,
   
    tgconstrrelid
   
   ,
   
    tgconstrindid
   
   ,
   
    tgdeferrable
   
   , and
   
    tginitdeferred
   
   are
    largely redundant with the referenced
   
    pg_constraint
   
   entry.
    However, it is possible for a non-deferrable trigger to be associated
    with a deferrable constraint: foreign key constraints can have some
    deferrable and some non-deferrable triggers.
  
Note
   
    pg_class.relhastriggers
   
   must be true if a relation has any triggers in this catalog.