「已注销」 2017-05-20 18:25 采纳率: 0%
浏览 989

在oracle数据库中的触发器怎么可以回滚主事务的操作

我执行下面这段代码之后没有出错,然后更新cusinfo表,想要回滚主事务的操作,但是这里提示说不能再触发器使用rollback(使用子事务也没什么用)

create or replace trigger forbid_insert_update_cusinfo --触发器,通过cusinfo表的FILINGMAN或CHARGEMAN列值是否存在于userinfo表中,若存在插入,若不存在就rollback
before update or insert of filingman,chargeman on cusinfo
for each row
declare
v_countf number;
v_countc number;
begin
select count(*) into v_countf from userinfo where username=:new.filingman;
select count(*) into v_countc from userinfo where username=:new.chargeman;
if v_countf=0 then--要注意,这里的判断不能写==
rollback;
elsif v_countc=0 then
rollback;
end if;
end;

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-05-21 09:09
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题