sqlplus中exit和disconnect,dml语句会不会提交

昨天数据库有行锁争用的阻塞,同事问update语句,没有提交,断开会话是不是就回滚了?

之前我也认为sqlplus里输入了exit或者disconnect会回滚的,今天本着严谨的态度,就在虚拟机里测试了下(忘记测了直接把终端关闭的情况了)。

结果竟然是提交(只是测试sqlplus,默认设置;当然也 可能不严谨或者有什么特殊设置)。

exit测试:

sqlplus中exit和disconnect,dml语句会不会提交

sqlplus中exit和disconnect,dml语句会不会提交

右边的会话卡住

sqlplus中exit和disconnect,dml语句会不会提交

左边的会话exit后,右边的会话立刻执行完成。

重新打开一个终端,发现已更新为test1

sqlplus中exit和disconnect,dml语句会不会提交

第二个终端(SID为1的session)commit

sqlplus中exit和disconnect,dml语句会不会提交

再在第三个终端上查看是否更新,已更新为test2

sqlplus中exit和disconnect,dml语句会不会提交

disconnect测试:

sqlplus中exit和disconnect,dml语句会不会提交

右侧的卡住

sqlplus中exit和disconnect,dml语句会不会提交

disconnect后右侧会话立刻完成

sqlplus中exit和disconnect,dml语句会不会提交

开第三个终端,发现已更新为testx

sqlplus中exit和disconnect,dml语句会不会提交

会话2commit后,第三个终端查询,发现已更新为testy

sqlplus中exit和disconnect,dml语句会不会提交

上一篇:hdu 4849 Wow! Such City!(dijstra)


下一篇:数据库表的设计