Тригери в SQL

Тригери як правила „подія-умова-дія”

Тригери ще називають правилами „подія-умова-дія” (event-condition-action rules, ECA rules). Особливості тригерів як обмежень:

  1. Тригер „спрацьовує” лише при настанні певної події (event), яка описана в тексті тригера. Зазвичай це такі події, як операції додавання, видалення і оновлення відношення. Інколи це факт завершення транзакції.
  2. До виконання дій тригер перевіряє умову. Для виконання дій умова має повернути TRUE, в разі FALSE виконання тригера завершується.
  3. В разі істинності умови виконується дія, яка є послідовністю операцій з БД, у відповідності до логіки розробника.

 

Приклад 14.8 (простий). Нехай є відношення

,

яке містить перелік керівних осіб кіноіндустрії, netWorth – річний дохід кожного. Треба створити тригер, який запобігає будь-якій спробі його зниження.

 

 

Рис.14.11. Приклад тригера рівня кортежу.

 

Рядки Що вони містять
Заголовок, назва тригера
Подія тригера – після оновлення компонента netWorth
3-5 Посилання на кортежі зі старими та новими значеннями. OLD ROW та NEW ROW надаються програмісту в SQL-коді тригера, а OldTuple та NewTuple використовуються ним надалі як псевдоніми цих відношень.
Код тригера повинен спрацьовувати для кожного оновленого кортежу. Альтернатива (по замовчанню) – FOR EACH STATEMENT, тоді тригер мав би спрацьовувати для SQL-виразу в цілому.
Умова спрацювання тригера: старий дохід більше нового
8-10 Відновлення старого рівня доходу

 

Доповнення: