导航
  • 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流
  • 问答

关于触发器的一个小问题(在线等待)

super_cha 2004-01-05 09:13:31
现在有2个表,记录是一一对应的,我在对第一个表进行insert,delete,update的时候要对第二个表进行修改,现在能不能只针对发生变化的那条记录进行操作,如果可以,如何去做?
...全文
50 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianhg 2004-01-05
只要有KEY,下面的就可以了,替换A,B的名
CREATE OR REPLACE TRIGGER TRI_A
BEFORE DELETE INSERT UPDATE
ON A FOR EACH ROW
BEGIN
IF UPDATEING THEN
UPDATE B SET fld1= :new.fld1
where fld1 = :old.fld1;
END IF;
END;
回复
super_cha 2004-01-05
有没有个例子啊,在第一个表里某行做了变动,在第二表中只在那行进行修改,原来没有用过触发器,还请各位高手指教。
回复
lianhg 2004-01-05
如果这两个表(A,B)建立key,那就没问题。下面
的代码只是个思路:

CREATE OR REPLACE TRIGGER TRI_A
BEFORE DELETE INSERT UPDATE
ON A FOR EACH ROW
BEGIN
...
IF UPDATEING THEN
UPDATE B SET fld1= :new.fld1
where fld1 = :old.fld1;
END IF;
回复
kerisyml 2004-01-05
当然可以了,你在第一个表进行insert、delete、update的时候调用触发器修改第二个表即可,具体怎么作你可以去参考触发器的应用,很简单的
回复
乐不 2004-01-05
用行级触发器呀,甚至可以建立争对某个字段的行级触发器
回复
发动态
发帖子
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
社区公告
暂无公告