Главное предназначение триггера — сохранение ссылочной целостности данных. Это означает, что даже при изменении базы данных всегда есть возможность вернуть все назад. Также с их помощью можно проводить каскадные изменения в связанных таблицах, при котором ссылки меняются одновременно и не нарушают связей.
Сам триггер представляет собой сохраняемую процедуру, которая запускается автоматически при изменении данных человеком или прикладной программой. Он «включается», как только изменение данных завершено. Изменение данных и запущенный триггер рассматриваются как одна транзакция (действие), поэтому при появлении или обнаружении ошибки все можно вернуть назад, это называется rolled back.
Работа триггера
- Каскадные изменения во взаимосвязанных таблицах данных. Например, если требуется удалить определенный столбец или строку сразу во всех таблицах, используется триггер.
- Возвращение к исходным данным таблиц
- Отслеживание различных соответствий. Например, схема триггера может предусматривать запрет на уменьшение цены товара ниже закупочной цены.
- Анализ различных вариантов изменений. Работа триггера очень удобна для просчета вариантов до и после модификации. Например, можно посчитать, что будет, если снизить все цены на 5% или на сколько увеличится себестоимость всех товаров при увеличении транспортных расходов. После анализа все данные можно вернуть в первоначальный вид.
Создание триггера
Триггеры создаются в текущей базе данных, однако в них можно указывать объекты, расположенные в других базах. Имя владельца триггера должно совпадать с именем владельца таблицы. Создают триггер в предложении Creat. В поле For указываются операторы изменения данных, после активации которых должен включаться триггер. Например, это могут быть insert, update или delete по отношению к таблице.
Далее следует указать триггерные действия или триггерные условия. Это те действия, которые должны последовать в качестве реакции на вставку, удаление или обновление данных.