pg_trigger#

В каталоге pg_trigger хранятся триггеры на таблицы и представления. Дополнительные сведения см. в разделе CREATE 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 = триггер срабатывает в режиме «replication», A = триггер всегда срабатывает

tgisinternal

bool

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

tgconstrrelid

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

Таблица, на которую ссылается ограничение целостности ссылок (ноль, если триггер не относится к ограничению целостности ссылок)

tgconstrindid

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

Индекс, поддерживающий уникальный, первичный ключ, референтную целостность или ограничение исключения (ноль, если триггер не относится к одному из этих типов ограничений)

tgconstraint

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

Запись ограничения pg_constraint, связанная с триггером (ноль, если триггер не для ограничения)

tgdeferable

bool

True, если триггер ограничения отложен

tginitdeferred

bool

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

tgnargs

int2

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

tgattr

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

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

tgargs

bytea

Строки аргументов, которые должны быть переданы для триггера, каждое завершенное NULL

tgqual

pg_node_tree

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

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, если у отношения есть триггеры в этом каталоге