Найти тему

Триггеры в 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;

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