ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oralce Trigger Before以及After 的差別

Oralce Trigger Before以及After 的差別

原创 Linux操作系统 作者:tolywang 时间:2007-07-31 00:00:00 0 删除 编辑
我想大概有些寫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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13382674