50.49. pg_trigger

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

Таблица 50.49. Столбцы 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.