FirebirdSQL logo

DML триггеры

DML триггеры вызываются при изменении состояния данных DML операциями: редактирование, добавление или удаление строк.Они могут быть определены и для таблиц и для представлений.

Варианты триггеров

Существует шесть основных вариантов соотношения событие-фаза для таблицы (представления):

до добавления новой строки

(BEFORE INSERT)

после добавления новой строки

(AFTER INSERT)

до изменения строки

(BEFORE UPDATE)

после изменения строки

(AFTER UPDATE)

до удаления строки

(BEFORE DELETE)

после удаления строки

(AFTER DELETE)

Помимо базовых форм с единственной фазой и событием Firebird поддерживает также формы с одной фазой и множеством событий, например BEFORE INSERT OR UPDATE OR DELETE или AFTER UPDATE OR DELETE или любая другая комбинация на ваш выбор.

Note

Триггеры с несколькими фазами, такие как BEFORE OR AFTER …​ не поддерживаются.

Контекстные переменные INSERTING, UPDATING и DELETING логического типа могут быть использованы в теле триггера для определения события, которое вызвало срабатывание триггера.