加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ORACLE和TRIGGERS(插入,更新,删除)

发布时间:2020-12-12 13:57:46 所属栏目:百科 来源:网络整理
导读:我想在表上使用一个触发器,每次插入,更新或删除一行时,它将被触发。 我写了这样的东西: CREATE or REPLACE TRIGGER test001 AFTER INSERT OR DELETE OR UPDATE ON tabletest001 REFERENCING OLD AS old_buffer NEW AS new_buffer FOR EACH ROW WHEN (new
我想在表上使用一个触发器,每次插入,更新或删除一行时,它将被触发。

我写了这样的东西:

CREATE or REPLACE TRIGGER test001
  AFTER INSERT OR DELETE OR UPDATE ON tabletest001
  REFERENCING OLD AS old_buffer NEW AS new_buffer 
  FOR EACH ROW WHEN (new_buffer.field1 = 'HBP00')

它的工作原理
由于我想做同样的事情,如果行被插入,更新或删除,我想知道触发器发生了什么。
我想我可以设法找到该行是否插入或更新(我可以使用new_buffer检查old_buffer)。
我怎么知道行是否被删除?

从 Using Triggers:

Detecting the DML Operation That Fired
a Trigger

If more than one type of DML operation
can fire a trigger (for example,ON
INSERT OR DELETE OR UPDATE OF
Emp_tab),the trigger body can use the
conditional predicates INSERTING,
DELETING,and UPDATING to check which
type of statement fire the trigger.

所以

IF DELETING THEN ... END IF;

应该适合你的情况。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读