Тригер - це програмний блок, асоційований з таблицею бази даних, який автоматично виконує вказані в ньому дії, коли над зв'язаною з ним таблицею бази даних було здійснено окремо визначену подію.
З тригерами можна зв'язати наступні події:
- Додання нового запису
- Зміна існуючого запису
- Вилучення запису
Виклик тригера для виконання можна визначити:
- перед здісненням події
- після здійснення події
Тригер ніколи не викликається безпосередньо з програми користувача. Він активізується автоматично, якщо користувач виконав такі дії над таблицею, які передбачені в умовах активізації тригера.
Тригер складається з заголовку тригера та тіла тригера.
Заголовок тригера містить: ім'я тригера; ім'я таблиці, для якої створюється тригер; умови, за яких активізується тригер.
Тіло тригера містить: необов'язковий список визначень локальних змінних (імена змінних та їх типи); блок операторів мови ISPL , який починається з BEGIN та завершується END. Ці оператори виконуються при активізації тригера.
Створення тригерувиконується оператором
CREATE TRIGGER name FOR tablename [ ACTIVE / INACTIVE]
{BEFOR / AFTER} { DELETE / INSERT / UPDATE }
[ POSITION number]
AS
< trigger body>
ACTIVE
-
параметр визначає активність тригера.
INACTIVE
-
параметр визначає неактивність тригера.
BEFOR
-
визначає, що тригер виконується перед асоційованою операцією.
AFTER
-
визначає, що тригер виконується після асоційованої операції.
POSITION number
-
визначає номер активізації тригера в ряду декількох тригерів, тригер з меншим номером активізується першим. Номер приймає значення від 0 до 32767.
< trigger body> =
DECLARE VARIABLE variable <data type>;
BEGIN
< compound_statement>
END
Всередині тіла тригера доступні для використання спеціальні змінні, імена яких відповідають формату NEW.column та OLD.column, де column - ім'я поля в таблиці. Ці імена дають змогу звертатися до нового (NEW.column) значення поля таблиці з іменем column та його старого (OLD.column) значення.