oracle trigger for each row 是遍历哪些 行呢搞不懂她是遍历所有的行还是最近更新的行呢

解决方案 »

  1.   

    不能说遍历,用词不准,这和遍历没关系。
    比如说update,for each row是说  每有一行被update,就XXXX; 
    如果不加,不是说如果有条update a set b =1 where c>1;即使这条语句改了表中1万行,也只会触发一次。
      

  2.   

    如果不加,就是说如果有条update a set b =1 where c>1;即使这条语句改了表中1万行,也只会触发一次。
      

  3.   

    咋个上面回复的都不一致呢?
    应该说行级触发器for each row  是针对能引起此行级触发器的所有行
    举个例子:
     update trigger  for each row 如果update操作所影响的行只有一行,那么此触发体就只执行一次;若update操作所影响的行是多行,换句话说就是更新多行,那么触发体没影响一行就执行一次。
    主要看你操作的影响范围,当然也可以用语句级触发器来达到只执行一次
      

  4.   

    同意5楼  没有for each row 就是语句级 一条语句触发一次
    行级是每行触发一次