51.56. pg_trigger

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

Таблица 51.56. Столбцы pg_trigger

Тип столбца

Описание

oidoid

Идентификатор строки

tgrelidoid (ссылается на pg_class.oid)

Таблица, к которой относится этот триггер

tgparentidoid (ссылается на pg_trigger.oid)

Родительский триггер, из которого был скопирован данный, либо 0, если данный триггер — не копия; это поле заполняется, когда секция создаётся или присоединяется к секционированной таблице.

tgnamename

Имя триггера (должно быть уникальным среди триггеров одной таблицы)

tgfoidoid (ссылается на pg_proc.oid)

Вызываемая функция

tgtypeint2

Битовая маска, задающая условия срабатывания триггера

tgenabledchar

Устанавливает, в каких режимах session_replication_role срабатывает триггер: O = триггер срабатывает в режимах «origin» (источник) и «local» (локально), D = триггер отключён, R = триггер срабатывает в режиме «replica» (реплика), A = триггер срабатывает всегда.

tgisinternalbool

True, если триггер создан внутри системы (обычно, для реализации ограничения, заданного в tgconstraint)

tgconstrrelidoid (ссылается на pg_class.oid)

Таблица, задействованная в ограничении ссылочной целостности

tgconstrindidoid (ссылается на pg_class.oid)

Индекс, поддерживающий ограничение уникальности, первичного ключа или ссылочной целостности, либо ограничение-исключение

tgconstraintoid (ссылается на pg_constraint.oid)

Запись в pg_constraint, связанная этим триггером, если такая имеется

tgdeferrablebool

True, если триггер ограничения является откладываемым

tginitdeferredbool

True, если триггер ограничения изначально отложенный

tgnargsint2

Число аргументов, передаваемых функции триггера

tgattrint2vector (ссылается на pg_attribute.attnum)

Номера столбцов, если триггер привязан к столбцам; в противном случае пустой массив

tgargsbytea

Аргументы строкового типа, передаваемые триггеру, с NULL в конце каждого

tgqualpg_node_tree

Дерево выражения (в представлении nodeToString()) для условия триггера WHEN, либо NULL, если оно отсутствует

tgoldtablename

Предложение REFERENCING для OLD TABLE или NULL в случае его отсутствия

tgnewtablename

Предложение REFERENCING для NEW TABLE или NULL в случае его отсутствия


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

Примечание

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

Примечание

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

close