ГЛАВА 31. Триггеры.

We use cookies. Read the Privacy and Cookie Policy

ГЛАВА 31. Триггеры.

Триггеры - ключевые элементы среди возможностей, предоставляемых Firebird для централизованной реализации бизнес-правил внутри системы управления базой данных. Триггер является автономным модулем, который выполняется автоматически, когда выполняется запрос, который будет изменять состояние данных в таблице.

Для написания кодов триггеров используются техники PSQL и хранимых процедур. При этом триггеры не могут вызываться из приложений или других процедур. Соответственно, они не могут получать входные и возвращать выходные аргументы, как это возможно в процедурах. В дополнение к PSQL они включают некоторые контекстные расширения языка, применимые только в модулях триггеров.

Все триггеры в Firebird выполняются на уровне строки каждый раз, когда изменяется образ строки. Firebird поддерживает высокий уровень детализации при определении времени, последовательности и условий, при которых будет выполняться конкретный модуль триггера. Множество модулей может быть определено для каждой фазы и события.

Триггеры являются частью работы транзакции, в которой событие DML изменяет состояние строки. Если транзакция успешно подтверждается, все действия триггеров будут "приняты". Если будет выполнен откат транзакции, все действия триггера будут отменены.

Фаза, событие и последовательность

Триггер может выполняться в одной из двух фаз, связанных с запрошенными изменениями состояния данных: до (before) записи или после (after) нее. Он может применяться к одному из трех событий DML: добавление, изменение или удаление. Начиная с Firebird 1.5 возможно объединение действий триггера для двух или трех событий DML в одном модуле триггера до или после.