Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除多行时MySQL表上的触发器_Mysql_Triggers_Delete Row - Fatal编程技术网

删除多行时MySQL表上的触发器

删除多行时MySQL表上的触发器,mysql,triggers,delete-row,Mysql,Triggers,Delete Row,我编写了一个在删除行之前运行的触发器,该触发器更新汇总此表中数据的表。当我一次删除一行时,触发器工作得很好。但是,如果我要用如下语句一次删除多行 DELETE FROM myTable WHERE id BETWEEN 1 and 100; 在删除下一行之前,触发器是否会在第一行上完全运行,还是会同时运行所有触发器?触发器将在每一行上完全运行,请参阅 A.5.3:MySQL 5.6是否有语句级或行级触发器 在MySQL 5.6中,所有触发器都是针对每一行的,也就是说,触发器是 为插入、更新或删

我编写了一个在删除行之前运行的触发器,该触发器更新汇总此表中数据的表。当我一次删除一行时,触发器工作得很好。但是,如果我要用如下语句一次删除多行

DELETE FROM myTable WHERE id BETWEEN 1 and 100;

在删除下一行之前,触发器是否会在第一行上完全运行,还是会同时运行所有触发器?

触发器将在每一行上完全运行,请参阅

A.5.3:MySQL 5.6是否有语句级或行级触发器

在MySQL 5.6中,所有触发器都是针对每一行的,也就是说,触发器是 为插入、更新或删除的每一行激活。MySQL 5.6不支持为每条语句使用触发器

这对于当前最新版本也是有效的。

from

每行后面的语句定义触发器主体;也就是说,每次触发器激活时要执行的语句,对受触发事件影响的每行执行一次。在本例中,触发器主体是一个简单的集合,它将插入金额列的值累加到用户变量中。该语句将该列引用为NEW.amount,表示“要插入新行的金额列的值”


删除事务只会发生一次,但是对于受查询影响的每一行,触发器都会发生

感谢您的确认。我在上对此进行了测试,创建了一个触发器,用于计算表中的行数并将其保存到日志表中。随后的结果证明触发器确实在删除下一行之前运行。