53.58. pg_trigger
В каталоге pg_trigger
хранятся триггеры для таблиц и представлений. За дополнительными сведениями обратитесь к описанию CREATE TRIGGER.
Таблица 53.58. Столбцы pg_trigger
Тип столбца Описание |
---|
Идентификатор строки |
Таблица, к которой относится этот триггер |
Родительский триггер, из которого был скопирован данный (это поле заполняется, когда секция создаётся или присоединяется к секционированной таблице); ноль, если данный триггер — не копия |
Имя триггера (должно быть уникальным среди триггеров одной таблицы) |
Вызываемая функция |
Битовая маска, задающая условия срабатывания триггера |
Устанавливает, в каких режимах session_replication_role срабатывает триггер: |
True, если триггер создан внутри системы (обычно, для реализации ограничения, заданного в |
Таблица, задействованная в ограничении ссылочной целостности (ноль, если триггер предназначен не для реализации ограничения ссылочной целостности) |
Индекс, поддерживающий ограничение уникальности, первичного ключа или ссылочной целостности, либо ограничение-исключение (ноль, если триггер предназначен не для реализации таких ограничений) |
Запись в |
True, если триггер ограничения является откладываемым |
True, если триггер ограничения изначально отложенный |
Число аргументов, передаваемых функции триггера |
Номера столбцов, если триггер привязан к столбцам; в противном случае пустой массив |
Аргументы строкового типа, передаваемые триггеру, с NULL в конце каждого |
Дерево выражения (в представлении |
Предложение |
Предложение |
В настоящее время триггеры, привязанные к столбцам, поддерживаются только для событий UPDATE
, так что tgattr
применимо только к событиям такого типа. Поле tgtype
может содержать биты и для других типов событий, но они распространяются только на таблицы, вне зависимости от значения tgattr
.
Примечание
Когда tgconstraint
содержит не ноль, то есть ссылается на запись в pg_constraint
, поля tgconstrrelid
, tgconstrindid
, tgdeferrable
и tginitdeferred
по большому счёту избыточны, они повторяют значения в этой записи. Однако возможно связать неоткладываемый триггер с откладываемым ограничением: с ограничениями внешнего ключа могут быть связаны и откладываемые, и неоткладываемые триггеры.
Примечание
Если для отношения есть какие-либо триггеры в этом каталоге, значением pg_class.relhastriggers
для неё должно быть true.
53.58. pg_trigger
The catalog pg_trigger
stores triggers on tables and views. See CREATE TRIGGER for more information.
Table 53.58. pg_trigger
Columns
Column Type Description |
---|
Row identifier |
The table this trigger is on |
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 |
Trigger name (must be unique among triggers of same table) |
The function to be called |
Bit mask identifying trigger firing conditions |
Controls in which session_replication_role modes the trigger fires. |
True if trigger is internally generated (usually, to enforce the constraint identified by |
The table referenced by a referential integrity constraint (zero if trigger is not for a referential integrity constraint) |
The index supporting a unique, primary key, referential integrity, or exclusion constraint (zero if trigger is not for one of these types of constraint) |
The |
True if constraint trigger is deferrable |
True if constraint trigger is initially deferred |
Number of argument strings passed to trigger function |
Column numbers, if trigger is column-specific; otherwise an empty array |
Argument strings to pass to trigger, each NULL-terminated |
Expression tree (in |
|
|
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.