Триггеры MySQL — процедуры которые срабатывают при определенных событиях, например вставке, удалении, изменении строки.
Пример просмотра триггеров:
SHOW TRIGGERS\G;
Пример удаления триггера:
DROP TRIGGER name;
Триггеры могут выполняться как перед так и после выполнения запроса (BEFORE / AFTER).
Синтаксис триггера:
CREATE
TRIGGER `name` BEFORE/AFTER INSERT/UPDATE/DELETE
ON `database`.`table`
FOR EACH ROW BEGIN
-- trigger body
END;
Пример создания триггера:
DELIMITER //
CREATE TRIGGER next_contract_id BEFORE INSERT ON users_pi
FOR EACH ROW BEGIN
IF NEW.contract_id = '' THEN
SET NEW.contract_id=NEW.uid;
END IF;
IF NEW.contract_date = '' or NEW.contract_date = '0000-00-00' THEN
SET NEW.contract_date=curdate();
END IF;
END;
//
DELIMITER ;