Триггеры-SQL

Триггеры-SQL База данных

Триггеры-SQL

SQL-триггер — это событие, которое запускает ряд других событий, которые происходят, когда пользователь взаимодействует с определённой таблицей. Этот конкретный оператор SQL помогает проверять данные формы или применять правила.

Триггер выполняется до или после следующих событий:

  • ВСТАВИТЬ — при вставке новой строки.
  • ОБНОВЛЕНИЕ — при обновлении существующей строки.
  • УДАЛИТЬ — при удалении строки.

Какой триггер сработает и что произойдёт, зависит от того, как это написано. Начнём с создания оператора create:

CREATE TRIGGER <trigger_name> [BEFORE|AFTER] [INSERT|UPDATE|DELETE]
ON <table_name> [FOR EACH ROW|FOR EACH STATEMENT]
BEGIN
<trigger_logic>
END;

Между любым набором <> замените его собственными именами или логикой. Внутри [] выберите один вариант из имеющихся.

ДО / ПОСЛЕ и ВСТАВИТЬ | ОБНОВЛЕНИЕ | УДАЛИТЬ: выберите по одному из каждого списка. BEFORE / AFTER определяет, когда сработает триггер. INSERT / UPDATE / DELETE — это событие, которое запускает триггер.

ДЛЯ КАЖДОЙ СТРОКИ | ДЛЯ КАЖДОГО ЗАЯВЛЕНИЯ: разница между двумя вариантами здесь заключается в том, сколько раз запускается триггер. FOR EACH ROW запускается для каждой затронутой строки в таблице. FOR EACH STATEMENT всегда гарантированно запускается хотя бы один раз, независимо от того, обновлены ли какие-либо строки.

Подобно базам данных или таблицам, есть опция DROP TRIGGER:

DROP TRIGGER [IF EXISTS] trigger_name;

IF EXISTS — необязательная часть синтаксиса. Если эта часть включена в блок операторов, она предотвращает ошибку «триггер не существует». Удалённая таблица также автоматически удаляет все связанные триггеры.

Знайте, что триггер SQL требует трёх основных вещей: оператора create, который даёт триггеру его имя и когда событие происходит, как часто происходит триггер, а затем блок BEGIN / END, излагающий логику для фактического триггера.

Продолжайте практиковаться, если сначала вы этого не поймёте — поскольку это сложная концепция в SQL, она, вероятно, потребует больше повторений, чем другие темы и функции в SQL.

Читайте также:  Тип данных и функции PostgreSQL JSON
Оцените статью
bestprogrammer.ru
Добавить комментарий