Mysql的触发器,我一般是用在主表上面去维护子表的,比如多对多的关系或者一对多经常保持数据的一致性,需要使用触发器去操作,触发器的语法也很简单,
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name
FOR EACH ROW
BEGIN
[Statement]
END
参数说明:
trigger_name:触发器名称
trigger_time:出发时间【after:执行后,before:执行前】
trigger_event:出发事件【INSERT、UPDATE、DELETE】
tbl_name:针对某张表
Statement:表达式
下面做一个具体的例子进行说明触发器的作用2张表node表和sp表:
我们为node表写一个删除的触发器,去删除很node表中id一样的数据:
CREATE TRIGGER `t_node` AFTER DELETE ON `node` FOR EACH ROW
BEGIN
DELETE FROM sp WHERE id = old.id;
END;
然后我们写一个删除的sql语句:
DELETE FROM node WHERE id = 2;
我们看到 sp表的数据也一起被删除掉了,这就是触发器的作用。