Структурная схема терминов
Понятие триггера
Триггер представляет собой процедуру, которая находится на сервере БД и вызывается автоматически при модификации записей БД, т.е. при изменении столбцов или при их удалении и добавлении. В отличие от хранимых процедур, триггеры нельзя вызывать из приложения-клиента, а также передавать им параметры и получать от них результаты.
Триггер, по сути, похож на обработчики событий BeforeEdit, AfterEdit, BeforeInsert, AfterInsert, BeforeDelete и AfterDelete, связанные с модификацией таблиц. Триггер может вызываться при редактировании, добавлении или удалении записей до и (или) после этих событий.
Изменения, внесенные триггером в отмененные транзакции, также отменяются.
Триггеры обычно используются для программной реализации так называемых бизнес-правил. С их помощью удобно реализовывать ограничения на значения столбцов, ограничения ссылочной целостности, а также выполнять накапливание статистики работы с БД, резервное копирование и т.п.
Устанавливаемые триггером бизнес-правила не должны противоречить аналогичным правилам, заданным для БД на физическом уровне.
Команды создания, изменения и удаления триггера
Создание и изменение триггера
Создание триггера выполняется оператором следующего формата:
CREATE TRIGGER <Имя триггера> FOR <Имя таблицы>
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{UPDATE | INSERT | DELETE}
[POSITION <число>]
AS <Тело триггера>
Описатель | Назначение |
ACTIVE | Триггер активен сразу после его создания |
INACTIVE | Триггер неактивен сразу после его создания |
BEFORE | Триггер выполняется до наступления события |
AFTER | Триггер выполняется после наступления события |
UPDATE | INSERT | DELETE | Определяют событие, для которого вызывается триггер |
Для одного события можно создать несколько триггеров. Порядок их вызова задается числом, указанным в операнде POSITION. Триггеры выполняются в порядке возрастания этих чисел.
Изменение триггера
ALTER TRIGGER <Имя триггера> For <Имя таблицы>
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
{UPDATE | INSERT | DELETE}
[POSITION <число>]
AS <Тело триггера>
В целом, формат оператора такой же, как и при создании триггера. После выполнения оператора старое описание заменяется на новое.
Удаление триггера
Производится оператором:
DROP TRIGGER <имя триггера>
Программирование триггера аналогично программированию хранимой процедуры. Для доступа к значениям столбца используются конструкции формата:
OLD.<Имя столбца>
NEW.<Имя столбца>
Генераторы - назначение, создание, установка начального значения
Дата добавления: 2021-09-25; просмотров: 331;