pg_trigger
Эта страница переведена при помощи нейросети GigaChat.
В каталоге pg_trigger хранятся триггеры на таблицы и представления. Дополнительные сведения см. в разделе CREATE TRIGGER.
Столбцы 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 = триггер срабатывает в режиме "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, если у отношения есть триггеры в этом каталоге