48.46. pg_trigger

В каталоге pg_trigger хранятся триггеры для таблиц и представлений. За дополнительными сведениями обратитесь к описанию CREATE TRIGGER.

Таблица 48-46. Колонки pg_trigger

ИмяТипСсылкиОписание
oidoid Идентификатор строки (скрытый атрибут; должен выбираться явно)
tgrelidoidpg_class.oidТаблица, к которой относится этот триггер
tgnamename Имя триггера (должно быть уникальным среди триггеров одной таблицы)
tgfoidoidpg_proc.oidВызываемая функция
tgtypeint2 Битовая маска, задающая условия срабатывания триггера
tgenabledchar Устанавливает, в каких режимах session_replication_role срабатывает триггер: O = триггер срабатывает в режимах "origin" (источник) и "local" (локально), D = триггер отключён, R = триггер срабатывает в режиме "replica" (реплика), A = триггер срабатывает всегда.
tgisinternalbool True, если триггер создан внутри системы (обычно, для реализации ограничения, заданного в tgconstraint)
tgconstrrelidoidpg_class.oidТаблица, задействованная в ограничении ссылочной целостности
tgconstrindidoidpg_class.oidИндекс, поддерживающий ограничение уникальности, первичного ключа или ссылочной целостности, либо ограничение-исключение
tgconstraintoidpg_constraint.oidЗапись в pg_constraint, связанная этим триггером, если такая имеется
tgdeferrablebool True, если триггер ограничения является откладываемым
tginitdeferredbool True, если триггер ограничения изначально отложенный
tgnargsint2 Число аргументов, передаваемых функции триггера
tgattrint2vectorpg_attribute.attnumНомера колонок, если триггер привязан к колонкам; в противном случае пустой массив
tgargsbytea Аргументы строкового типа, передаваемые триггеру, с NULL в конце каждого
tgqualpg_node_tree Дерево выражения (в представлении nodeToString()) для условия триггера WHEN, либо NULL, если оно отсутствует

В настоящее время триггеры, привязанные к колонкам, поддерживаются только для событий UPDATE, так что tgattr применимо только к событиям такого типа. Поле tgtype может содержать биты и для других типов событий, но они распространяются только на таблицы, вне зависимости от значения tgattr.

Замечание: Когда tgconstraint содержит не ноль, то есть ссылается на запись в pg_constraint, поля tgconstrrelid, tgconstrindid, tgdeferrable и tginitdeferred по большому счёту избыточны, они повторяют значения в этой записи. Однако, возможно связать неоткладываемый триггер с откладываемым ограничением: с ограничениями внешнего ключа могут быть связаны и откладываемые, и неоткладываемые триггеры.

Замечание: Если для отношения есть какие-либо триггеры в этом каталоге, значением pg_class.relhastriggers для неё должно быть true.