Триггеры в MySQL

Триггер в MySQL — поименованный объект БД, который ассоциирован с таблицей и активируемый при наступлении определенного события, события связанного с этой таблицей.
Такими событиями могут быть:

  • INSERT — при операциях вставки или аналогичных ей выражениях (INSERT, LOAD DATA, и REPLACE)
  • UPDATE — когда сущность (строка) модифицирована
  • DELETE — когда запись удаляется (запросы, содержащие выражения DELETE и/или REPLACE)

Кроме того, для каждого события есть два варианта:
BEFORE — выполняется до исполнения команды. Допустим, при BEFORE INSERT могут быть изменены данные перед вставкой их в таблицу или рассчитаны дополнительные поля для вставки.
AFTER — данное событие вызывается, после завершения исполнения команды. Как правило, это событие используется для обновления статистических данных или вставки данных в другие таблицы.

Таким образом получаем 6 возможных ситуаций исполнения триггеров:

  • BEFORE INSERT
  • AFTER INSERT
  • BEFORE UPDATE
  • AFTER UPDATE
  • BEFORE DELETE
  • AFTER DELETE

Синтаксис создания триггера

CREATE
[DEFINER = { имя_ пользователя | CURRENT_USER }]
TRIGGER имя_триггера время_триггера событие_срабатывания_триггера
ON имя_таблицы 
FOR EACH ROW BEGIN
	Выражения которые выполняются при срабатывании триггера
END;

Пример:

CREATE dbuser@localhost 
TRIGGER beforeUpdTrigger BEFORE UPDATE
ON dbname
FOR EACH ROW BEGIN
	Выражения которые выполняются при срабатывании триггера
END;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *