Тригер (бази даних)

Цей термін має також інші значення див. Тригер (значення).

Тригер (англ. Trigger) - процедура, що зберігається особливого типу, яку користувач не викликає безпосередньо, а виконання якої обумовлено дією по модифікації даних: додаванням INSERT. видаленням DELETE рядки в заданій таблиці, або зміною UPDATE даних в певному стовпці заданої таблиці реляційної бази даних. Тригери застосовуються для забезпечення цілісності даних і реалізації складної бізнес-логіки. Тригер запускається сервером автоматично при спробі зміни даних в таблиці, з якою він пов'язаний. Всі вироблені їм модифікації даних розглядаються як виконуються в транзакції. в якій виконано дію, яка викликала спрацьовування тригера. Відповідно, в разі виявлення помилки або порушення цілісності даних може статися відкат цієї транзакції.

Момент запуску тригера визначається за допомогою ключових слів BEFORE (тригер запускається до виконання пов'язаного з ним події, наприклад, до додавання запису) або AFTER (після події). У разі, якщо тригер викликається до події, він може внести зміни в модифікуються подією запис (звичайно, за умови, що подія - не вилучення запису). Деякі СУБД накладають обмеження на оператори, які можуть бути використані в тригері (наприклад, може бути заборонено вносити зміни в таблицю, на якій «висить» тригер, і т. П.).

Крім того, тригери можуть бути прив'язані не до таблиці, а до подання (VIEW). В цьому випадку з їх допомогою реалізується механізм «оновлюваного уявлення». В цьому випадку ключові слова BEFORE і AFTER впливають лише на послідовність виклику тригерів, так як власне подія (видалення, вставка або оновлення) не відбувається.

У деяких серверах тригери можуть викликатися не для кожної модифікується записи, а один раз на зміну таблиці. Такі тригери називаються табличними.

В цьому випадку для відмінності табличних тригерів від малих вводиться додаткові ключові слова при описі малих тригерів. У Oracle це словосполучення FOR EACH ROW.

Схожі статті