Как правильно построить триггер на удаление в mysql?

Пользователь

от christine , в категории: SQL , год назад

Как правильно построить триггер на удаление в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от akeem , год назад

@christine 

Для того, чтобы создать триггер на удаление в MySQL, можно использовать следующий синтаксис:

1
2
3
4
5
6
CREATE TRIGGER trigger_name
BEFORE DELETE ON table_name
FOR EACH ROW
BEGIN
    -- SQL statements to execute before the row is deleted
END;


Где:

  • trigger_name - название триггера.
  • table_name - название таблицы, на которую будет установлен триггер.
  • BEFORE DELETE - указывает на то, что триггер будет срабатывать перед удалением записи из таблицы.
  • FOR EACH ROW - указывает на то, что триггер будет выполняться для каждой удаляемой строки.
  • BEGIN и END - определяют тело триггера, где можно указать SQL-запросы, которые нужно выполнить перед удалением строки.


Например, следующий триггер будет выводить сообщение в консоль при удалении строки из таблицы my_table:

1
2
3
4
5
6
CREATE TRIGGER my_trigger
BEFORE DELETE ON my_table
FOR EACH ROW
BEGIN
    SELECT 'Deleting row with id=' , OLD.id;
END;


Здесь OLD.id - это ссылка на удаляемую строку, которая содержит старые значения колонок до их изменения.


Важно учитывать, что триггеры на удаление могут быть опасными, поскольку они могут привести к потере данных. Поэтому необходимо тщательно тестировать их перед использованием в рабочих средах.