The catalog pg_trigger stores triggers on tables. See CREATE TRIGGER for more information.
Table 44-35. pg_trigger Columns
|tgrelid||oid||pg_class.oid||The table this trigger is on|
|tgname||name||Trigger name (must be unique among triggers of same table)|
|tgfoid||oid||pg_proc.oid||The function to be called|
|tgtype||int2||Bit mask identifying trigger 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.|
|tgisconstraint||bool||True if trigger is a "constraint trigger"|
|tgconstrname||name||Constraint name, if a constraint trigger|
|tgconstrrelid||oid||pg_class.oid||The table referenced by a referential integrity constraint|
|tgconstraint||oid||pg_constraint.oid||The pg_constraint entry owning 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|
|tgargs||bytea||Argument strings to pass to trigger, each NULL-terminated|
Note: When tgconstraint is nonzero, tgisconstraint must be true, and tgconstrname, tgconstrrelid, tgdeferrable, tginitdeferred are redundant with the referenced pg_constraint entry. The reason we keep these fields is that we support "stand-alone" constraint triggers with no corresponding pg_constraint entry.
Note: pg_class.reltriggers needs to agree with the number of triggers found in this table for each relation.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.