有没有人知道在mysql查询中是否有办法没有FOR EACH ROW
语法?
也许是一种解决方法或什么?
我需要使用after insert
触发器,但应用程序会多次插入作为插入的一部分。
因此,触发器以复合方式将数据视为每个插入的一部分。
答案 0 :(得分:0)
FOR EACH ROW
触发器定义中需要AFTER INSERT
语法。 MySQL支持"行级"仅触发。 MySQL不支持"语句级别" DML操作的触发器。这是设计的。
有解决方法吗?
不,没有解决方法。对于插入的每一行,都会触发AFTER INSERT FOR EACH ROW
触发器。是否有十几个单独的INSERT语句每个插入一行,或者是否有一个插入十几行的INSERT语句并不重要。触发器将针对每一行触发。
在触发器中,您可以对此进行比较或检查,然后您可以有条件地分支触发器内的部分代码。但是对于插入的每一行,没有办法绕过AFTER INSERT触发器的触发。