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_constraintentry 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'sWHENcondition, or null
       if none | |
| tgoldtable | name | REFERENCINGclause name forOLD TABLE,
       or null if none | |
| tgnewtable | name | REFERENCINGclause name forNEW 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.
  
    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.
   
    pg_class.relhastriggers
    must be true if a relation has any triggers in this catalog.