51.56. pg_trigger
The catalog
pg_trigger
stores triggers on tables
and views.
See
CREATE TRIGGER
for more information.
Table 51.56.
pg_trigger
Columns
Name | Type | References | Description |
---|---|---|---|
oid
|
oid
|
Row identifier (hidden attribute; must be explicitly selected) | |
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.