50.49. pg_trigger
В каталоге pg_trigger хранятся триггеры для таблиц и представлений. За дополнительными сведениями обратитесь к описанию CREATE TRIGGER.
Таблица 50.49. Столбцы pg_trigger
| Имя | Тип | Ссылки | Описание | 
|---|---|---|---|
| oid | oid | Идентификатор строки (скрытый атрибут; должен выбираться явно) | |
| tgrelid | oid |  | Таблица, к которой относится этот триггер | 
| tgname | name | Имя триггера (должно быть уникальным среди триггеров одной таблицы) | |
| tgfoid | oid |  | Вызываемая функция | 
| tgtype | int2 | Битовая маска, задающая условия срабатывания триггера | |
| tgenabled | char | Устанавливает, в каких режимах session_replication_role срабатывает триггер: O= триггер срабатывает в режимах «origin» (источник) и «local» (локально),D= триггер отключён,R= триггер срабатывает в режиме «replica» (реплика),A= триггер срабатывает всегда. | |
| tgisinternal | bool | True, если триггер создан внутри системы (обычно, для реализации ограничения, заданного в tgconstraint) | |
| tgconstrrelid | oid |  | Таблица, задействованная в ограничении ссылочной целостности | 
| tgconstrindid | oid |  | Индекс, поддерживающий ограничение уникальности, первичного ключа или ссылочной целостности, либо ограничение-исключение | 
| tgconstraint | oid |  | Запись в pg_constraint, связанная этим триггером, если такая имеется | 
| tgdeferrable | bool | True, если триггер ограничения является откладываемым | |
| tginitdeferred | bool | True, если триггер ограничения изначально отложенный | |
| tgnargs | int2 | Число аргументов, передаваемых функции триггера | |
| tgattr | int2vector |  | Номера столбцов, если триггер привязан к столбцам; в противном случае пустой массив | 
| 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.