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