51.58. pg_trigger#

51.58. pg_trigger

51.58. pg_trigger

Каталог pg_trigger хранит триггеры на таблицы и представления. См. CREATE TRIGGER для получения дополнительной информации.

Таблица 51.58. pg_trigger Колонки

Тип столбца

Описание

oid oid

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

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

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

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

Родительский триггер, от которого был клонирован данный триггер (это происходит при создании или присоединении секций к секционированной таблице); ноль, если не является клоном

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 не равно нулю, tgconstrrelid, tgconstrindid, tgdeferrable и tginitdeferred в значительной степени дублируются с соответствующей записью pg_constraint. Однако возможно, что неоткладываемый триггер может быть связан с дифференцируемым ограничением: ограничения внешнего ключа могут иметь как дифференцируемые, так и неоткладываемые триггеры.

Примечание

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