不能说遍历,用词不准,这和遍历没关系。 比如说update,for each row是说 每有一行被update,就XXXX; 如果不加,不是说如果有条update a set b =1 where c>1;即使这条语句改了表中1万行,也只会触发一次。
如果不加,就是说如果有条update a set b =1 where c>1;即使这条语句改了表中1万行,也只会触发一次。
咋个上面回复的都不一致呢? 应该说行级触发器for each row 是针对能引起此行级触发器的所有行 举个例子: update trigger for each row 如果update操作所影响的行只有一行,那么此触发体就只执行一次;若update操作所影响的行是多行,换句话说就是更新多行,那么触发体没影响一行就执行一次。 主要看你操作的影响范围,当然也可以用语句级触发器来达到只执行一次
比如说update,for each row是说 每有一行被update,就XXXX;
如果不加,不是说如果有条update a set b =1 where c>1;即使这条语句改了表中1万行,也只会触发一次。
应该说行级触发器for each row 是针对能引起此行级触发器的所有行
举个例子:
update trigger for each row 如果update操作所影响的行只有一行,那么此触发体就只执行一次;若update操作所影响的行是多行,换句话说就是更新多行,那么触发体没影响一行就执行一次。
主要看你操作的影响范围,当然也可以用语句级触发器来达到只执行一次
行级是每行触发一次