35.57. triggers#
35.57. triggers
Представление triggers
содержит все триггеры, определенные в текущей базе данных на таблицы и представления, которые принадлежат текущему пользователю или для которых у него есть привилегии, отличные от SELECT
.
Таблица 35.55. triggers
Колонки
Тип столбца Описание |
---|
Имя базы данных, содержащей триггер (всегда текущая база данных) |
Имя схемы, содержащей триггер |
Имя триггера |
Событие, которое вызывает триггер ( |
Имя базы данных, содержащей таблицу, на которой определен триггер (всегда текущая база данных) |
Имя схемы, содержащей таблицу, на которой определен триггер |
Имя таблицы, на которой определен триггер |
Порядок срабатывания триггеров на одной таблице с одним и тем же
|
|
Выполняемый оператор триггера (в настоящее время всегда
|
Определяет, запускается ли триггер один раз для каждой обработанной строки или один раз для каждого оператора ( |
Время, когда срабатывает триггер ( |
Имя “старой” таблицы перехода или null, если таковой отсутствует |
Имя новой таблицы “переходов”, или null, если таковой нет |
Применяется к функциональности, недоступной в Tantor SE |
Применяется к функциональности, недоступной в Tantor SE |
Применяется к функциональности, недоступной в Tantor SE |
Триггеры в Tantor SE имеют два несовместимости с SQL-стандартом, которые влияют на представление в информационной схеме. Во-первых, имена триггеров локальны для каждой таблицы в Tantor SE, а не являются независимыми объектами схемы. Поэтому в одной схеме могут быть определены дубликаты имен триггеров, при условии, что они принадлежат разным таблицам. (trigger_catalog
и trigger_schema
на самом деле относятся к таблице, на которой определен триггер). Во-вторых, в Tantor SE триггеры могут быть определены для срабатывания на несколько событий (например, 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-стандартом (уникальные имена триггеров в схеме и только один тип события на триггер), это не повлияет на вас.
Примечание
До Tantor SE9.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 и более поздним версиям.