Oralce Trigger Before以及After 的差別

我想大概有些寫trigger的人會遇上這個問題..尤其是沒有師父指導..得自己瞎子摸象
我花了點時間把這個問題給理清楚
希望將來寫oracle trigger的人別犯跟我一樣的錯誤 .

BEFORE

Specify BEFORE to cause the database to fire the trigger before executing the triggering event. For row triggers, the trigger is fired before each affected row is changed.

Restrictions on BEFORE Triggers
  • You cannot specify a BEFORE trigger on a view or an object view.

  • You can write to the :NEW value but not to the :OLD value.


AFTER

Specify AFTER to cause the database to fire the trigger after executing the triggering event. For row triggers, the trigger is fired after each affected row is changed.

Restrictions on AFTER Triggers
  • You cannot specify an AFTER trigger on a view or an object view.

  • You cannot write either the :OLD or the :NEW value.

Note:When you create a materialized view log for a table, Oracle Database implicitly creates an AFTER ROW trigger on the table. This trigger inserts a row into the materialized view log whenever an INSERT, UPDATE, or DELETE statement modifies data in the master table. You cannot control the order in which multiple row triggers fire. Therefore, you should not write triggers intended to affect the content of the materialized view.

Before可以做 新舊值的比對..但是After卻不行...

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-84831/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-84831/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值