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