FOR EACH ROW 触发操作

FOR EACH ROW 触发操作对触发语句所作用的每一个行执行一次。例如,如果触发语句有下列语法,将对 manu_code列的值为 'KAR'items 表中的每一行执行一次 FOR EACH ROW 触发操作:
UPDATE items SET quantity = quantity * 2 
          WHERE manu_code = 'KAR';

如果触发事件不处理任何行,将不会执行 FOR EACH ROW 触发操作。

对于表上的触发器,如果触发事件为 SELECT 语句,那么该触发器称为选择触发器,并且触发操作在完成时对检索到的行的所有处理之后再执行。但是,触发操作可能不会立即执行;原因是会对查询返回的行的每一个实例执行 FOR EACH ROW 操作。例如,在带有 ORDER BY 子句的 SELECT 语句中,必须先根据 WHERE 子句限定所有行,它们才能排序并返回。