oracle 触发器

oracle触发器模板:

oracle触发器用于操作过一个表要对另一个表产生影响,这是可以用触发器;

Create Or Replace Trigger huiTrig
  After Insert Or Delete Or Update On dept  For Each Row
Begin
  If Inserting Then
    Insert Into emp Values (999,'insert', 0);
  Elsif Updating Then
     Insert Into emp Values (999,'update', 0);
  Elsif Deleting Then
     Insert Into emp Values (999,'delete', 0);
  End If;
End;

Oracle触发器中的:new和:old的使用

1、  必须是行级触发器,因为 :new 或者 :old 是当前触发表操作的当前行的新数据或者旧数据,所以必须在行级触发器中才能使用。否则编译时会出现错误。
 
2、  当触发器被不同事件触发时,需要注意:
    insert 触发操作 只有 :new
    delete触发操作 只有 :old
    update触发操作 都有。
    如果违反上述操作中随意使用 :new 或者 :old 不会在编译时报错误但是会发现使用这两个关键字无效。
3、  使用触发器时如果要修改 :new 的值需要注意:
    只有行级前触发器才能修改 :new 的值,而行级后触发器不可以。
    因为行级前触发器是在本行 DML 操作之前,所以才能修改 :new 的值。从逻辑上说,也只有在这时修改才有意义。如果行级后触发器要试图修改 :new 的值会报变异错误。从逻辑上说后触发器的执行已经在本行 DML 操作,以后了,再修改 :new 的值已经不会对数据产生影响了。
4、  当在触发条件中使用 :new 或者 :old 的时候注意,只能直接写 old 或者 new ,不能带符号 ”:” 否则会出错。

转载于:https://www.cnblogs.com/WhiteAir/archive/2012/08/30/2663422.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值