51.56. pg_trigger

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

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

Тип столбца

Описание

oid oid

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

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

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

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

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

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, если оно отсутствует

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.