2020-11-17
业务过程中有sql语句执行出现了主键冲突,然后就没有进行insert,想查找这条Sql语句
业务进行过程中有sql语句执行出现了主键冲突,然后就没有进行insert操作,怎么查找出具体是哪条Sql语句
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
业务进行过程中有sql语句执行出现了主键冲突,然后就没有进行insert操作,怎么查找出具体是哪条Sql语句
根据你的描述我能想到两种情况:
一是高并发环境下主键字段相同的多条记录同时插入,比如A会话插入一个值(未提交),B会话随后也插入同样的值,这样会产生lock mode 4的enq: TX - row lock contention,这种情况去查dba_hist_active_sess_history视图里面这个等待事件对应的sql即可。
二是主键值本身已经存在表中了,这种情况直接应用程序日志就会报0001错误,直接看日志就能查到了
评论
有用 0
墨值悬赏