MySQL 触发器是 MySQL 中管理数据的有力工具。通过对数据表的相关操作来触发、激活从而实现自动执行。
触发器的执行是自动的,当对触发器相关表的数据做出相应的修改后立即执行。
触发器可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。
触发器可以实现表数据的级联更改,在一定程度上保证了数据的完整性。
使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是涉及到多个触发器的情况下,会使后期维护变得困难。
大量使用触发器容易导致代码结构被打乱,增加了程序的复杂性,
如果需要变动的数据量较大时,触发器的执行效率会非常低。
在实际使用中,MySQL 所支持的触发器有三种:INSERT 触发器、UPDATE 触发器和 DELETE 触发器。
1 INSERT 触发器
在 INSERT 语句执行之前或之后响应的触发器。
2 UPDATE 触发器
在 UPDATE 语句执行之前或之后响应的触发器。
3 DELETE 触发器
在 DELETE 语句执行之前或之后响应的触发器。
语法 :
CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row <触发器主体>
示例
CREATE TRIGGER updateclasstotalnumber AFTER INSERT
ON students FOR EACH ROW
UPDATE classes set class_total_number = class_total_number + 1 WHERE class_id = NEW.class_id;
SHOW TRIGGERS;
DROP TRIGGER double_salary;
修改触发器可以通过删除原触发器,再以相同的名称创建新的触发器。