Особенности триггеров
Являясь по сути хранимой процедурой, триггер обладает теми же преимуществами и недостатками, что и весь хранимый код. К преимуществам следует добавить то, что триггеры являются прекрасным инструментом для администратора БД, поскольку работают независимо от того, какое из клиентских приложений вызвало активизирующее их событие. Эта особенность превращает триггеры также в средство добавления новой функциональности в существующую систему без всякого изменения ее программного кода. Достаточно только выбрать подходящее событие и создать триггер.
Однако, нужно отметить, что использовать триггеры следует с особой осторожностью, ведь клиентские приложения вообще ничего не знают о существовании тех или иных триггеров на сервере, и важно не допустить никаких конфликтов и противоречий в слаженной работе всей информационной системы.
Событий, которые могут активизировать триггеры, довольно много, например, Oracle поддерживает триггеры уровня базы данных, уровня схемы и уровня таблицы. В рамках данного курса рассмотрим только триггеры уровня таблицы, которые обеспечивают автоматическое выполнение некоторых действий при каждой модификации данных таблицы.
Такой триггер характеризуется следующими признаками, которые должны быть заданы при его создании:
- уникальное имя триггера (задание параметров не требуется, поскольку триггер – процедура без параметров);
- активизирующее действие - команда, которая вызывает запуск триггера, такими командами являются INSERT, DELETE, UPDATE;
- время активизации - выполнение триггера до (BEFORE) или после (AFTER) выполнения активизирующего действия;
- область действия - выполнение триггера либо один раз для каждого оператора модификации таблицы, либо для каждой строки (в последнем случае следует добавить фразу FOR EACH ROW);
- условие активизации - необязательное дополнительное условие, которое должно выполняться для запуска триггера (фраза WHEN);
- тело триггера – действия, выполняемые триггером (блок PL/SQL).
На каждое событие может быть создано и несколько триггеров. Однотипные триггеры выполняются в порядке их создания.
Действие, выполняемое в триггере, может включать в себя операции INSERT, DELETE, UPDATE, которые, в свою очередь, могут запускать выполнение того же или других триггеров. Такое явление называется каскадированием триггера.
Дата добавления: 2015-08-26; просмотров: 720;