原创 Oracle数据库触发器的组成

2008-9-22 12:24 1973 2 2 分类: 软件与OS
一个触发器有三个基本部件:触发事件或语句、触发器的限制、触发器动作。

触发事件或语句:为引起触发器激发的SQL语句,是对指定表INSERT、UPDATE或DELETE语句。



触发器限制:为一布尔表达式,当触发器激发时该条件必须为TRUE。触发器的限制是用WHEN子句来指定。



触发器的动作:为一个PL/SQL块(过程),由SQL语句和PL/SQL语句组成。当触发语句发出,触发器的限制计算得TRUE时,它被执行。在触发器动作的语句中,可使用触发器的处理的当前行的列值(新值、老值),使用形式为:


NEW.列名 引用新值


OLE.列名 引用老值


在定义触发器时可指定触发器动作执行次数:受触发语句影响每一行执行一次或是对触发语句执行一次。


对每一触发语句可有四种类型触发器:


行触发器:对受触发语句所影响的每一行,行触发器激发一次。


语句触发器:该类型触发器对触发语句执行一次,不管其受影响行数。


定义触发器可以指定触发时间,指定激发器动作的执行相对于触发语句执行之后或之前。


BEFORE触发器:该触发器执行触发器动作是在触发语句执行之前。


AFTER触发器:该触发器执行触发器动作是在触发语句执行之后。


一个触发器可处于两种不同的方式:使能触发器和使不能触发器。


使能触发器:只要当触发语句发出,触发器限制计算为TRUE,这种类型的触发器执行其触发动作。


使不能触发器:这种触发器即使其触发语句被发出,触发器限制计算为TRUE,也不执行触发器动作。


触发器的源代码存储在数据库中,在第一次执行时,触发器的源代码被编译,存储在共享池中。假如触发器从共享池中挤了,再使用时必须再重新编译。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /3 下一条