Триггеры в MySQL 🚀



Триггеры в MySQL — это специальные процедуры, которые автоматически выполняются в ответ на определённые события внутри таблиц базы данных. Они срабатывают при выполнении операций вставки (INSERT), обновления (UPDATE) или удаления (DELETE) данных.



Для чего нужны триггеры 🔍

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



Создание триггера 🆕

Создать триггер можно с помощью команды CREATE TRIGGER. Например, триггер, который будет автоматически устанавливать текущую дату и время в поле last_updated при обновлении строки в таблице users:





CREATE TRIGGER before_user_update

BEFORE UPDATE ON users

FOR EACH ROW

SET NEW.last_updated = NOW();





Удаление триггера

Удалить триггер можно с помощью команды DROP TRIGGER. Например:



DROP TRIGGER before_user_update;





Полезный пример использования ℹ️

Предположим, в базе данных есть таблица orders с полями id, total и updated_at. Можно создать триггер, который будет обновлять updated_at каждый раз, когда меняется сумма заказа (total):





CREATE TRIGGER update_order_timestamp

BEFORE UPDATE ON orders

FOR EACH ROW

WHEN (OLD.total <> NEW.total)

BEGIN

SET NEW.updated_at = CURRENT_TIMESTAMP;

END;





Этот триггер помогает отслеживать момент последнего изменения суммы заказа, что может быть полезно для аудита изменений или для обновления связанных систем, например, систем бухгалтерского учета.