在MySQL5.6版本里,不支持一个表有多个INSERT/DELETE/UPDATE触发器。
例如创建t1表两个INSERT的触发器:DELIMITER$$
USE`test`$$
DROPTRIGGER/*!50032IFEXISTS*/`t1_1`$$
CREATE
/*!50017DEFINER=‘admin‘@‘%‘*/
TRIGGER`t1_1`AFTERINSERTON`t1`
FOREACHROWBEGIN
INSERTINTOt2(id,NAME)VALUES(new.id,new.name);
END;
$$
DELIMITER;DELIMITER$$
USE`test`$$
DROPTRIGGER/*!50032IFEXISTS*/`t1_2`$$
CREATE
/*!50017DEFINER=‘admin‘@‘%‘*/
TRIGGER`t1_2`AFTERINSERTON`t1`
FOREACHROWBEGIN
INSERTINTOt3(id,NAME)VALUES(new.id,new.name);
END;
$$
DELIMITER;
执行的时候就会报错,如下:
而在MySQL5.7里,已经支持一个表有多个INSERT/DELETE/UPDATE触发器。
参考: