实际上,“ FOR EACH ROW”意味着每个匹配的行都将被更新或删除。换句话说,我们可以说触发器没有应用于每一行,它只是说要为每个受影响的表行执行触发器主体。我们可以通过以下示例来说明这一点-
示例
在此示例中,我们将创建两个表Sample和Sample_rowaffected,如下所示-mysql> Create table Sample(id int, value varchar(20));
mysql> Insert into Sample(id, value) values(100, 'same'),(101,
'Different'),(500, 'excellent'),(501, 'temporary');
Records: 4 Duplicates: 0 Warnings: 0
mysql> Select * from Sample;
+------+-----------+
| id | value |
+------+-----------+
| 100 | same |
| 101 | Different |
| 500 | excellent |
| 501 | temporary |
+------+-----------+
4 rows in set (0.00 sec)
mysql> Create table Sample_rowaffected(id int);
mysql> Select Count(*) as ‘Rows Affected’ from sample_rowaffected;