CREATE TRIGGER
Создание нового триггера.
DSQL, ESQL
CREATE TRIGGER trigname { <relation_trigger_legacy> | <relation_trigger_sql2003> | <database_trigger> | <ddl_trigger> } <routine body> <relation_trigger_legacy> ::= FOR {tablename | viewname} [ACTIVE | INACTIVE] {BEFORE | AFTER} <mutation_list> [POSITION number] <relation_trigger_sql2003> ::= [ACTIVE | INACTIVE] {BEFORE | AFTER} <mutation_list> ON {tablename | viewname} [POSITION number] <database_trigger> ::= [ACTIVE | INACTIVE] ON db_event [POSITION number] <ddl_trigger> ::= [ACTIVE | INACTIVE] {BEFORE | AFTER} <ddl_events> [POSITION number] <mutation_list> ::= <mutation> [OR <mutation> [OR <mutation>]] <mutation> ::= INSERT | UPDATE | DELETE <db_event> ::= CONNECT | DISCONNECT | TRANSACTION {START | COMMIT | ROLLBACK} <ddl_events> ::= { ANY DDL STATEMENT | <ddl_event_item> [{OR <ddl_event_item>} ...] } <ddl_event_item> ::= {CREATE | ALTER | DROP} TABLE | {CREATE | ALTER | DROP} PROCEDURE | {CREATE | ALTER | DROP} FUNCTION | {CREATE | ALTER | DROP} TRIGGER | {CREATE | ALTER | DROP} EXCEPTION | {CREATE | ALTER | DROP} VIEW | {CREATE | ALTER | DROP} DOMAIN | {CREATE | ALTER | DROP} ROLE | {CREATE | ALTER | DROP} SEQUENCE | {CREATE | ALTER | DROP} USER | {CREATE | ALTER | DROP} INDEX | {CREATE | DROP} COLLATION | ALTER CHARACTER SET | {CREATE | ALTER | DROP} PACKAGE | {CREATE | DROP} PACKAGE BODY | {CREATE | ALTER | DROP} MAPPING <routine-body> ::= <psql-routine-spec> | <external-routine-spec> <psql-routine-spec> ::= [<rights-clause>] <psql-routine-body> <rights-clause> ::= SQL SECURITY {DEFINER | INVOKER} <psql-routine-body> ::= См. Синтаксис тела модуля <external-routine-spec> ::= <external-routine-reference> [AS <extbody>] <external-routine-reference> ::= EXTERNAL NAME <extname> ENGINE <engine> <extname> ::= '<module-name>!<routine-name>[!<misc-info>]'
Параметр | Описание |
---|---|
trigname |
Имя триггера.Может содержать до 63 символов. |
relation_trigger_legacy |
Объявление табличного триггера (унаследованное). |
relation_trigger_sql2003 |
Объявление табличного триггера согласно стандарту SQL-2003. |
database_trigger |
Объявление триггера базы данных. |
ddl_trigger |
Объявление DDL триггера. |
tablename |
Имя таблицы. |
viewname |
Имя представления. |
mutation_list |
Список событий таблицы. |
mutation |
Одно из событий таблицы. |
db_event |
Событие соединения или транзакции. |
ddl_events |
Список событий изменения метаданных. |
ddl_event_item |
Одно из событий изменения метаданных. |
number |
Порядок срабатывания триггера.От 0 до 32767. |
extbody |
Тело внешнего триггера. Строковый литерал который можетиспользоваться UDR для различных целей. |
module-name |
Имя внешнего модуля. |
routine-name |
Имя точки входа внутри модуля. |
misc-info |
Различная информация используемая внешним триггером по своемуусмотрению. |
Оператор CREATE TRIGGER
создаёт новый триггер.Триггер может быть создан для события (или событий) отношения (таблицы или представления), для события (событий) изменения метаданных или для одного из событий базы данных.
Оператор CREATE TRIGGER
, как и его родственники ALTER TRIGGER
, CREATE OR ALTER TRIGGER
и RECREATE TRIGGER
являются составными операторами, содержащими заголовок и тело.
Заголовок определяет имя триггера, а также содержит имя отношения (для табличных триггеров), фазу триггера, событие (или события) на которые срабатывает триггер и позицию.Имя триггера должно быть уникальным среди имён других триггеров.