Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 48. Системные каталоги | След. |
48.46. pg_trigger
В каталоге pg_trigger хранятся триггеры для таблиц и представлений. За дополнительными сведениями обратитесь к описанию CREATE TRIGGER.
Таблица 48-46. Колонки pg_trigger
Имя | Тип | Ссылки | Описание |
---|---|---|---|
oid | oid | Идентификатор строки (скрытый атрибут; должен выбираться явно) | |
tgrelid | oid | pg_class.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, если оно отсутствует |
В настоящее время триггеры, привязанные к колонкам, поддерживаются только для событий UPDATE, так что tgattr применимо только к событиям такого типа. Поле tgtype может содержать биты и для других типов событий, но они распространяются только на таблицы, вне зависимости от значения tgattr.
Замечание: Когда tgconstraint содержит не ноль, то есть ссылается на запись в pg_constraint, поля tgconstrrelid, tgconstrindid, tgdeferrable и tginitdeferred по большому счёту избыточны, они повторяют значения в этой записи. Однако, возможно связать неоткладываемый триггер с откладываемым ограничением: с ограничениями внешнего ключа могут быть связаны и откладываемые, и неоткладываемые триггеры.
Замечание: Если для отношения есть какие-либо триггеры в этом каталоге, значением pg_class.relhastriggers для неё должно быть true.
Пред. | Начало | След. |
pg_tablespace | Уровень выше | pg_ts_config |