35.57. triggers #

Представление triggers показывает все триггеры, определённые в текущей базе данных для таблиц и представлений, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права, кроме SELECT).

Таблица 35.55. Столбцы triggers

Тип столбца

Описание

trigger_catalog sql_identifier

Имя базы данных, содержащей триггер (всегда текущая база)

trigger_schema sql_identifier

Имя схемы, содержащей триггер

trigger_name sql_identifier

Имя триггера

event_manipulation character_data

Событие, вызывающие срабатывание триггера (INSERT, UPDATE или DELETE)

event_object_catalog sql_identifier

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

event_object_schema sql_identifier

Имя схемы, содержащей таблицу, для которой определён триггер

event_object_table sql_identifier

Имя таблицы, для которой определён триггер

action_order cardinal_number

Порядок срабатывания триггеров, имеющих одинаковые свойства event_manipulation, action_timing и action_orientation. В Postgres Pro триггеры срабатывают по порядку их имён, что и отражается в этом столбце.

action_condition character_data

Условие WHEN триггера, либо NULL, если его нет (так же NULL, если таблица не принадлежит текущей активной роли)

action_statement character_data

Оператор, выполняемый триггером (в настоящее время всегда EXECUTE FUNCTION функция(...))

action_orientation character_data

Определяет, срабатывает ли триггер для каждой обрабатываемой строки или только для каждого оператора (ROW или STATEMENT)

action_timing character_data

Момент срабатывания триггера (BEFORE (до), AFTER (после) или INSTEAD OF (вместо))

action_reference_old_table sql_identifier

Имя «старой» переходной таблицы либо NULL, если её нет

action_reference_new_table sql_identifier

Имя «новой» переходной таблицы либо NULL, если её нет

action_reference_old_row sql_identifier

Относится к функциональности, отсутствующей в Postgres Pro

action_reference_new_row sql_identifier

Относится к функциональности, отсутствующей в Postgres Pro

created time_stamp

Относится к функциональности, отсутствующей в Postgres Pro


Триггеры в Postgres Pro несовместимы со стандартом в двух аспектах, которые влияют на их представление в информационной схеме. Во-первых, имена триггеров являются локальными для каждой таблицы в Postgres Pro, а не независимыми объектами схемы. Таким образом, в одной схеме могут быть дублирующиеся имена триггеров, если они принадлежат разным таблицам. (Значения trigger_catalog и trigger_schema на самом деле относятся к таблице, для которой определён триггер.) Во-вторых, триггеры в Postgres Pro могут срабатывать при нескольких событиях (например, ON INSERT OR UPDATE), тогда как стандарт SQL допускает только одно событие. Если триггер настроен на несколько событий, он представляется в информационной схеме в виде нескольких строк, по одной для каждого типа события. Вследствие этих двух особенностей, первичный ключ в представлении triggers на самом деле (trigger_catalog, trigger_schema, event_object_table, trigger_name, event_manipulation), а не (trigger_catalog, trigger_schema, trigger_name), как должно быть согласно стандарту SQL. Однако если определять триггеры в строгом соответствии со стандартом SQL (чтобы имена триггеров были уникальны в схеме и каждый триггер связывался только с одним событием), это расхождение никак не проявится.

Примечание

До PostgreSQL 9.1 в этом представлении столбцы action_timing, action_reference_old_table, action_reference_new_table, action_reference_old_row и action_reference_new_row назывались condition_timing, condition_reference_old_table, condition_reference_new_table, condition_reference_old_row и condition_reference_new_row, соответственно. Старые имена были продиктованы стандартом SQL:1999. Новые имена соответствуют стандарту SQL:2003 и более поздним.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy