触发器里面有多个插入和更新操作,现在要实现的是当其中一个出错时,其他操作都回滚,有大神能提供一些例子吗?

微瞰技术
博客专家认证
2017-07-13 01:51:37
在网上搜索到可以在触发器中用自治事务实现,但是不是很详细。希望能提供一个比较详细的回答
...全文
451 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
pugongyingpgyidc 2017-07-17
  • 打赏
  • 举报
回复
宋哥 2017-07-17
  • 打赏
  • 举报
回复
存储过程也可以操作文件。
sxq129601 2017-07-14
  • 打赏
  • 举报
回复
好像触发器本来就是要么全部成功,要么全部失败。你自己试试呢。无需写COMMIT和ROLLBACK
sxq129601 2017-07-14
  • 打赏
  • 举报
回复
引用 5 楼 u011342403 的回复:
[quote=引用 3 楼 sxq129601 的回复:] 不懂?这个和触发器有啥关系,你COMMIT放最后不就行了,加上个exception rollback;
是在触发器里面触发的这些操作。。触发器里面不允许commit存在。。所以要用自治事务啊[/quote] 触发器里建自治事务是有风险的
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 4 楼 baidu_36457652 的回复:
加个 exception 然后判断 哪些错误 需要回滚
insert into values();之后再Exception吗?
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 3 楼 sxq129601 的回复:
不懂?这个和触发器有啥关系,你COMMIT放最后不就行了,加上个exception rollback;
是在触发器里面触发的这些操作。。触发器里面不允许commit存在。。所以要用自治事务啊
  • 打赏
  • 举报
回复
加个 exception 然后判断 哪些错误 需要回滚
sxq129601 2017-07-14
  • 打赏
  • 举报
回复
不懂?这个和触发器有啥关系,你COMMIT放最后不就行了,加上个exception rollback;
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 1 楼 iamlaosong 的回复:
只要没有提交都可以回滚啊
只要没提交的都可以回滚?..当一个DML运行的时候,如果遇到了错误,则这条语句会整个回滚。但是一个触发器的多条语句,一个语句发生错误。其他的是否会回滚呢?
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 14 楼 iamlaosong 的回复:
如果没干扰就用表,如果有干扰就用文件。
用表肯定是可以的,在数据库里面用文件存储错误?
宋哥 2017-07-14
  • 打赏
  • 举报
回复
如果没干扰就用表,如果有干扰就用文件。
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 12 楼 iamlaosong 的回复:
这要看具体情况处理,可以通过其他方式记录这种失败,比如日志什么的,然后定时处理这个日志。
其他方式是什么方式?日志是另外的表?
宋哥 2017-07-14
  • 打赏
  • 举报
回复
这要看具体情况处理,可以通过其他方式记录这种失败,比如日志什么的,然后定时处理这个日志。
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 1 楼 iamlaosong 的回复:
只要没有提交都可以回滚啊
还想再问问。我在触发器里面给另一个表插入数据。在插入数据失败的时候。我要回写标记到触发触发器的这个表。怎么去捕捉这个插入失败呢?
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 8 楼 sxq129601 的回复:
好像触发器本来就是要么全部成功,要么全部失败。你自己试试呢。无需写COMMIT和ROLLBACK
还想再问问。我在触发器里面给另一个表插入数据。在插入数据失败的时候。我要回写标记到触发触发器的这个表。怎么去捕捉这个插入失败呢?
微瞰技术 2017-07-14
  • 打赏
  • 举报
回复
引用 8 楼 sxq129601 的回复:
好像触发器本来就是要么全部成功,要么全部失败。你自己试试呢。无需写COMMIT和ROLLBACK
目前数据都是正常的。。都模拟不了不正常的数据。。但是必须要做这个异常控制。。真是没办法。
宋哥 2017-07-13
  • 打赏
  • 举报
回复
只要没有提交都可以回滚啊

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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