Создание триггеров
Создание триггеров
Триггер определяется с помощью оператора CREATE TRIGGER, который состоит из заголовка и тела. Заголовок триггера отличается от заголовка хранимой процедуры, он содержит:
* имя триггера, которое должно быть уникальным в базе данных;
* имя таблицы, идентифицирующее таблицу, с которой ассоциируется триггер;
* атрибуты, которые определяют состояние, фазу, событие DML и, необязательно, последовательность.
Тело триггера, как и тело хранимой процедуры, содержит:
* необязательный список локальных переменных и их типов данных;
* блок операторов на языке процедур и триггеров Firebird, заключенный в операторные скобки BEGIN и END. Эти операторы выполняются, когда запускается триггер. Сам блок может включать другие блоки, так что может существовать много уровней вложенности.
Синтаксис
Для всех версий Firebird синтаксис CREATE TRIGGER одинаков:
CREATE TRIGGER имя FOR {таблица | просмотр}
[ACTIVE | INACTIVE]
{BEFORE | AFTER} {DELETE | INSERT | UPDATE}
[POSITION число]
AS <тело-триггера> ^
<тело-триггера> = [<список-объявления-переменных>] <блок>
<список-объявления-переменных> = DECLARE VARIABLE переменная тип-данных;
[DECLARE [VARIABLE] переменная тип-данных; ...]
<блок> =
BEGIN
<составной-оператор> [<составной-оператор> ...]
END
<составной-оператор> = <блок> | оператор;
В версии 1.5 возможно слияние всех событий в один триггер фазы:
CREATE TRIGGER имя FOR {таблица | просмотр}
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{DELETE OR {[INSERT [OR UPDATE]} | {INSERT OR [. . ]} | {UPDATE OR [..]}}
[POSITION число]
AS <тело-триггера> ^
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ