pg_trigger — PostgreSQL system catalog

The PostgreSQL pg_trigger system catalog: full column reference (names, types, descriptions), catalog relationships and version support.

Summary

The catalog pg_trigger stores triggers on tables and views. See createtrigger for more information.

(Description quoted from the official PostgreSQL documentation.)

Columns

The pg_trigger system catalog exposes the following columns (names, types and descriptions are taken verbatim from the PostgreSQL documentation):

  • oid oid
    Row identifier
  • tgrelid oid references pg_class.oid
    The table this trigger is on
  • tgparentid oid references pg_trigger.oid
    Parent trigger that this trigger is cloned from (this happens when partitions are created or attached to a partitioned table); zero if not a clone
  • tgname name
    Trigger name (must be unique among triggers of same table)
  • tgfoid oid references pg_proc.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 references pg_class.oid
    The table referenced by a referential integrity constraint (zero if trigger is not for a referential integrity constraint)
  • tgconstrindid oid references pg_class.oid
    The index supporting a unique, primary key, referential integrity, or exclusion constraint (zero if trigger is not for one of these types of constraint)
  • tgconstraint oid references pg_constraint.oid
    The pg_constraint entry associated with the trigger (zero if trigger is not for a constraint)
  • 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 references pg_attribute.attnum
    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

Related catalogs

This object references the following other system catalogs:

Version applicability

Present in PostgreSQL 17, 18, 19 (verified against each release’s documentation). This is a long-standing system object that also exists in earlier PostgreSQL releases.

Related & references

Reference: PostgreSQL documentation — pg_trigger.