Триггеры в MySQL

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

Оставьте комментарий

Добавить комментарий