sqlplus中exit和disconnect,dml语句会不会提交
昨天数据库有行锁争用的阻塞,同事问update语句,没有提交,断开会话是不是就回滚了?
之前我也认为sqlplus里输入了exit或者disconnect会回滚的,今天本着严谨的态度,就在虚拟机里测试了下(忘记测了直接把终端关闭的情况了)。
结果竟然是提交(只是测试sqlplus,默认设置;当然也 可能不严谨或者有什么特殊设置)。
exit测试:
右边的会话卡住
左边的会话exit后,右边的会话立刻执行完成。
重新打开一个终端,发现已更新为test1
第二个终端(SID为1的session)commit
再在第三个终端上查看是否更新,已更新为test2
disconnect测试:
右侧的卡住
disconnect后右侧会话立刻完成
开第三个终端,发现已更新为testx
会话2commit后,第三个终端查询,发现已更新为testy