Перейти к основному содержимому

pg_trigger

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

СтолбецТип данныхОписание
oidoidИдентификатор строки
tgrelidoid (ссылается на pg_class.oid)Таблица, в которой находится этот триггер
tgparentidoid (ссылается на pg_trigger.oid)Родительский триггер, из которого клонируется этот триггер (это происходит, когда создаются разделы или присоединяются к разделенной таблице); ноль, если не клон
tgnamenameИмя триггера (должно быть уникальным среди триггеров одной и той же таблицы)
tgfoidoid (ссылается на pg_proc.oid)Функция, которую нужно вызвать
tgtypeint2Бит-маска, идентифицирующая условия запуска триггера
tgenabledcharКонтролирует, в каких режимах session_replication_role срабатывает триггер. O = триггер срабатывает в режимах "origin" и "local", D = триггер отключен, R = триггер срабатывает в режиме "replication", A = триггер всегда срабатывает
tgisinternalboolTrue, если триггер сгенерирован внутренне (обычно для обеспечения соблюдения ограничения, определенного ограничением tgconstraint)
tgconstrrelidoid (ссылается на pg_class.oid)Таблица, на которую ссылается ограничение целостности ссылок (ноль, если триггер не относится к ограничению целостности ссылок)
tgconstrindidoid (ссылается на pg_class.oid)Индекс, поддерживающий уникальный, первичный ключ, референтную целостность или ограничение исключения (ноль, если триггер не относится к одному из этих типов ограничений)
tgconstraintoid (ссылается на pg_constraint.oid)Запись ограничения pg_constraint, связанная с триггером (ноль, если триггер не для ограничения)
tgdeferableboolTrue, если триггер ограничения отложен
tginitdeferredboolTrue, если триггер ограничения изначально отложен
tgnargsint2Количество строк аргументов, переданных для запуска функции
tgattrint2vector (ссылается на pg_attribute.attnum)Номера столбцов, если триггер специфичен для столбцов; в противном случае пустой массив
tgargsbyteaСтроки аргументов, которые должны быть переданы для триггера, каждое завершенное NULL
tgqualpg_node_treeДерево выражений (в представлении nodeToString()) для условия WHEN триггера или нулевое, если оно отсутствует
tgoldtablenameREFERENCING имя предложения для OLD TABLE, или NULL, если нет
tgnewtablenameREFERENCING имя предложения для NEW TABLE, или NULL, если нет

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

Примечание

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

Примечание

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