对表本身触发问题?

SambaGao 2010-01-12 11:19:29

create table gjhohj_a (id int,name varchar(20),value int)

create table gjhohj_b (id int,name varchar(20),value int)

insert into gjhohj_a values (1,
'a',12)

insert into gjhohj_b values(1,'b',12)

commit

drop trigger gjhohj
create or replace trigger gjhohj after update
on gjhohj_a for each row

begin

insert into gjhohj_a values(:OLD.id,:OLD.name,:OLD.value) ;


end ;
update gjhohj_a set id='2'

ORA-04091: table FZDC.GJHOHJ_A is mutating, trigger/function may not see it
ORA-06512: at "FZDC.GJHOHJ", line 2
ORA-04088: error during execution of trigger 'FZDC.GJHOHJ'


...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hemes_MC 2010-01-12
  • 打赏
  • 举报
回复
create or replace procedure gjhohj(
id int;
name varchar;
value int;)
is
begin
insert into gjhohj_a values(id,name,value);
commit;
end gjhohj;
/

create or replace trigger gjhohj
after update on gjhohj_a
for each row
DECLARE PRAGMA AUTONOMOUS_TRANSACTION;
begin
gjhohj(:old.id,:old.name,:old.value);
commit;
end;
/
wuyisky84 2010-01-12
  • 打赏
  • 举报
回复
又要用自治事务?
suiziguo 2010-01-12
  • 打赏
  • 举报
回复
create or replace trigger gjhohj after update
on gjhohj_a for each row
DECLARE PRAGMA AUTONOMOUS_TRANSACTION;
begin

insert into gjhohj_a values(:OLD.id,:OLD.name,:OLD.value) ;


end ;

17,377

社区成员

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

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