Oracle 触发器问题

时间:2021-11-09 05:01:21
      本人在网上看一个关系触发器概念的帖子,如下:

      触发器的定义就是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。
 
 然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。
 具体举例:
 1. 在一个表中定义的语句级的触发器,当这个表被删除时,程序就会自动执行触发器里面定义的操作过程。这个就是删除表的操作就是触发器执行的条件了。
 2. 在一个表吕定义了行级的触发器,那当这个表中一行数据发生变化的时候,比如删除了一行记录,那触发器也会被自动执行了。

     我的问题是:语句级触发器是不是针对整个表的操作,而行级触发器只是对表中某或多个数据的操作?这两种触发器是否还有其他的分别?

6 个解决方案

#1


举一个例子,表A中有10条数据,你的动作删除10条数据
1、如果上面有一个 表级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器只针对你的 删除动作执行一次
2、如果上面有一个 行级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器会执行10次。。。

#2


行級針對涉及操作的每一行,語句級並不知道你操作的是哪一行,針對表.正常狀態,行級觸發器不可操作基表,語句級可以

#3


引用 1 楼  的回复:
举一个例子,表A中有10条数据,你的动作删除10条数据
1、如果上面有一个表级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器只针对你的删除动作执行一次。
2、如果上面有一个行级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器会执行10次。。。

++

#4


  三楼暴粗口是神马意思?

#5


他说的是 加加 。。。。
Oracle 触发器问题
引用 4 楼  的回复:
三楼暴粗口是神马意思?

#6


该回复于2012-09-27 14:30:33被版主删除

#1


举一个例子,表A中有10条数据,你的动作删除10条数据
1、如果上面有一个 表级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器只针对你的 删除动作执行一次
2、如果上面有一个 行级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器会执行10次。。。

#2


行級針對涉及操作的每一行,語句級並不知道你操作的是哪一行,針對表.正常狀態,行級觸發器不可操作基表,語句級可以

#3


引用 1 楼  的回复:
举一个例子,表A中有10条数据,你的动作删除10条数据
1、如果上面有一个表级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器只针对你的删除动作执行一次。
2、如果上面有一个行级删除触发器
   那么,当你删除动作开始或者结束 的时候,触发器会执行10次。。。

++

#4


  三楼暴粗口是神马意思?

#5


他说的是 加加 。。。。
Oracle 触发器问题
引用 4 楼  的回复:
三楼暴粗口是神马意思?

#6


该回复于2012-09-27 14:30:33被版主删除