FirebirdSQL logo

ALTER TRIGGER

Назначение

Изменение существующего триггера.

Доступно в

DSQL, ESQL

Синтаксис
ALTER TRIGGER trigname
[ACTIVE | INACTIVE]
[{BEFORE | AFTER} <mutation_list>]
[POSITION number]
[SQL SECURITY {DEFINER | INVOKER} | DROP SQL SECURITY]
[<routine-body>]

<mutation_list> ::= <mutation> [OR <mutation> [OR <mutation>]]

<mutation> ::= { INSERT | UPDATE | DELETE }

Полное описание оператора см. CREATE TRIGGER.

Допустимые изменения

В операторе изменения триггера можно изменить:

  • Состояние активности (ACTIVE | INACTIVE);

  • Фазу (BEFORE | AFTER);

  • Событие(я);

  • Позицию срабатывания;

  • Привилегии выполнения триггера: вызывающего пользователя (SQL SECURITY INVOKER), определяющего пользователя (SQL SECURITY DEFINER) или наследует у таблицы (DROP SQL SECURITY);

  • Код тела триггера.

Если какой-либо элемент не указан, то он остаётся без изменений.

Note

DML триггер невозможно изменить в триггер на событие базы данных и наоборот.

Событие в триггере базы данных невозможно изменить.

Tip
Помните

Триггер с ключевым словом BEFORE наступает до соответствующего события, с ключевым словом AFTER — после соответствующего события.

Один DML триггер может содержать более одного события (INSERT, UPDATE, DELETE). События должны быть разделены ключевым словом OR.Каждое из событий может быть указано не более одного раза.

Ключевое слово POSITION позволяет задать дополнительный порядок выполнения с одинаковыми фазой и событием.По умолчанию позиция равна 0.Если позиция не задана, или если несколько триггеров имеют один и тот же номер позиции, то триггеры будут выполнены в алфавитном порядке их наименований.