永发信息网

为什么oracle数据库 中触发器rollback不行 ,使用了自制事物也不行啊?

答案:2  悬赏:0  手机版
解决时间 2021-01-31 06:11
  • 提问者网友:城市野鹿
  • 2021-01-30 19:32
在insert时不能回滚,表中数据还在
create or replace trigger tri
after insert or update on cjb for each row

declare
pragma autonomous_transaction;
a number;
begin
select count(*) into a from kcb where kcb.couno=:new.couno;
if a=0 then

rollback;
dbms_output.put_line('sdasdsd');

end if;
end;
最佳答案
  • 五星知识达人网友:雾月
  • 2021-01-30 20:49
你是 after触发的,也就是添加或者修改完毕后进行的触发。
什么是添加或者修改完毕?如果在一个session中进行添加或者修改后,没有提交,那么仅仅在这个窗口可以查询到,你认为数据库认为修改完毕了么?明显没有,只有commit提交了,也就是事务完成了,才认为修改完毕,那么事务提交以后,怎么rollback。rollback是提交以前的动作,提交以后,rollback没有任何作用的。
全部回答
  • 1楼网友:未来江山和你
  • 2021-01-30 21:43
搜一下:为什么oracle数据库 中触发器rollback不行 ,使用了自制事物也不行啊?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯