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

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

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

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

exit测试:

clip_image002

clip_image004

右边的会话卡住

clip_image006

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

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

clip_image008

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

clip_image009

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

clip_image010

disconnect测试:

clip_image012

右侧的卡住

clip_image014

disconnect后右侧会话立刻完成

clip_image015

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

clip_image017

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

posted @ 2020-04-26 23:17  cnmarkao  阅读(611)  评论(0编辑  收藏  举报