简单触发器问题,执行就出错,编译没问题

zhangzgsky 2005-09-01 10:59:33
create or replace trigger trig_onlinegamesjb_zhuang
after update on onlinegamesjb
for each row
declare
-- local variables here
begin
--空桌
if :old.flag=0 then
update newapp.OnlineGameSJB set zhuangflag=1,flag=1 where roomid=:old.roomid;
end if ;
if :old.flag=3 then
update newapp.OnlineGameSJB set zhuangflag=2,flag=2 where roomid=:old.roomid;
end if;
if :old.flag=1 or :old.flag=2 then
update newapp.OnlineGameSJB set zhuangflag=2,flag=1 where roomid=:old.roomid;
end if;
end trig_onlinegamesjb_zhuang;


错误信息
java.sql.SQLException: ORA-04091: 表 NEWAPP.ONLINEGAMESJB 发生了变化,触发器/函数不能读
ORA-06512: 在"NEWAPP.TRIG_ONLINEGAMESJB_ZHUANG", line 6
ORA-04088: 触发器 'NEWAPP.TRIG_ONLINEGAMESJB_ZHUANG' 执行过程中出错

触发器目的:
更新表中数据时触发,如果表中flag值为不同的值时,更新列为不同的值。就这么简单。可是总出错。
求助!!!
...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterfirer 2005-09-01
  • 打赏
  • 举报
回复
更新时的触发器又执行更新,那不成了循环调用了吗?
你的更新语句可以不用触发器就能实现
zhangzgsky 2005-09-01
  • 打赏
  • 举报
回复
没有人帮忙吗?
求助了
很急
自己顶一下

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧