49.48. pg_trigger

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

Таблица 49-48. Столбцы pg_trigger

ИмяТипСсылкиОписание
oid oid  Идентификатор строки (скрытый атрибут; должен выбираться явно)
tgrelid oid pg_class.oid Таблица, к которой относится этот триггер
tgname name  Имя триггера (должно быть уникальным среди триггеров одной таблицы)
tgfoid oid pg_proc.oid Вызываемая функция
tgtype int2  Битовая маска, задающая условия срабатывания триггера
tgenabled char  Устанавливает, в каких режимах session_replication_role срабатывает триггер: O = триггер срабатывает в режимах "origin" (источник) и "local" (локально), D = триггер отключён, R = триггер срабатывает в режиме "replica" (реплика), A = триггер срабатывает всегда.
tgisinternal bool  True, если триггер создан внутри системы (обычно, для реализации ограничения, заданного в tgconstraint)
tgconstrrelid oid pg_class.oid Таблица, задействованная в ограничении ссылочной целостности
tgconstrindid oid pg_class.oid Индекс, поддерживающий ограничение уникальности, первичного ключа или ссылочной целостности, либо ограничение-исключение
tgconstraint oid pg_constraint.oid Запись в pg_constraint, связанная этим триггером, если такая имеется
tgdeferrable bool  True, если триггер ограничения является откладываемым
tginitdeferred bool  True, если триггер ограничения изначально отложенный
tgnargs int2  Число аргументов, передаваемых функции триггера
tgattr int2vector pg_attribute.attnum Номера столбцов, если триггер привязан к столбцам; в противном случае пустой массив
tgargs bytea  Аргументы строкового типа, передаваемые триггеру, с NULL в конце каждого
tgqual pg_node_tree  Дерево выражения (в представлении nodeToString()) для условия триггера WHEN, либо NULL, если оно отсутствует

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

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

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