52.58. pg_trigger
pg_trigger
The catalog pg_trigger stores triggers on tables and views. See CREATE TRIGGER for more information.
Column Type Description |
|---|
oid Row identifier |
tgrelid The table this trigger is on |
tgparentid 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 Trigger name (must be unique among triggers of same table) |
tgfoid The function to be called |
tgtype Bit mask identifying trigger firing conditions |
tgenabled Controls in which [session_replication_role (enum)
|
tgisinternal True if trigger is internally generated (usually, to enforce the constraint identified by tgconstraint) |
tgconstrrelid The table referenced by a referential integrity constraint (zero if trigger is not for a referential integrity constraint) |
tgconstrindid 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 The pg_constraint entry associated with the trigger (zero if trigger is not for a constraint) |
tgdeferrable True if constraint trigger is deferrable |
tginitdeferred True if constraint trigger is initially deferred |
tgnargs Number of argument strings passed to trigger function |
tgattr Column numbers, if trigger is column-specific; otherwise an empty array |
tgargs Argument strings to pass to trigger, each NULL-terminated |
tgqual Expression tree (in |
tgoldtable
|
tgnewtable
|
: pg_trigger Columns
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.