Chinaunix

标题: 新手,请教一个触发器问题! [打印本页]

作者: lishen1980    时间: 2004-01-15 16:42
标题: 新手,请教一个触发器问题!
我想写一个触发器,当对worker_message表进行删除,修改,插入操作的同时,对jiveuser表也进行同样的操作。

        触发器如下:
      
create or replace trigger "WWW"."TRIGGER_UPDATEJIVEUSER" AFTER
INSERT OR UPDATE OR DELETE ON "WORKER_MESSAGE" FOR EACH ROW


BEGIN

delete jiveuser where username = ld.work_id;

insert into jiveUser (
         userID,name,username,passwordHash,email,emailVisible,
         nameVisible,creationDate,modifiedDate,rewardPoints
)
select seqJiveUserId.nextval,work_name,work_id,pass_word,
         'guest@chinamobile.com.cn',1,1,'0','0',0
from worker_message
where work_id = :new.work_id;

当执行delete worker_message where work_id = 'A00000';时错误如下:

END TRIGGER_UPDATEJIVEUSER;
ORA-04091: table WWW.WORKER_MESSAGE is mutating, trigger/function may not see
it
ORA-06512: at "WWW.TRIGGER_UPDATEJIVEUSER", line 6
ORA-04088: error during execution of trigger 'WWW.TRIGGER_UPDATEJIVEUSER'
作者: zhhlv    时间: 2004-01-15 18:09
标题: 新手,请教一个触发器问题!
insert into jiveUser (
userID,name,username,passwordHash,email,emailVisible,
nameVisible,creationDate,modifiedDate,rewardPoints
)
select seqJiveUserId.nextval,work_name,work_id,pass_word,
'guest@chinamobile.com.cn',1,1,'0','0',0
from worker_message
where work_id = :new.work_id;


有问题,在表中你使用你触发的表。
我前一段也遇到这个问题!
可以看看我以前发的“一个触发器问题???”
作者: lishen1980    时间: 2004-01-15 23:59
标题: 新手,请教一个触发器问题!
thank u!
但我没有搜索到你的帖子!
能不能给我个地址或者把你的触发器给我看一下?
作者: lishen1980    时间: 2004-01-16 00:04
标题: 新手,请教一个触发器问题!
谢谢zhhlv!!
我已经找到你的帖子了。
懂了!
thanks




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2