49.56. pg_trigger
В каталоге pg_trigger
хранятся триггеры для таблиц и представлений. За дополнительными сведениями обратитесь к описанию CREATE TRIGGER.
Таблица 49.56. Столбцы 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, если оно отсутствует | |
tgoldtable | name | Предложение REFERENCING для OLD TABLE или NULL в случае его отсутствия | |
tgnewtable | name | Предложение REFERENCING для NEW TABLE или NULL в случае его отсутствия |
В настоящее время триггеры, привязанные к столбцам, поддерживаются только для событий UPDATE
, так что tgattr
применимо только к событиям такого типа. Поле tgtype
может содержать биты и для других типов событий, но они распространяются только на таблицы, вне зависимости от значения tgattr
.
Примечание
Когда tgconstraint
содержит не ноль, то есть ссылается на запись в pg_constraint
, поля tgconstrrelid
, tgconstrindid
, tgdeferrable
и tginitdeferred
по большому счёту избыточны, они повторяют значения в этой записи. Однако возможно связать неоткладываемый триггер с откладываемым ограничением: с ограничениями внешнего ключа могут быть связаны и откладываемые, и неоткладываемые триггеры.
Примечание
Если для отношения есть какие-либо триггеры в этом каталоге, значением pg_class.relhastriggers
для неё должно быть true.