PLSQL Developer可以说是个让人又爱又憎的工具,“爱”是他的确提供了操作Oracle数据库非常丰富、方便的功能,“憎”是他的一些隐藏配置很可能是个“坑”,就像《PLSQL Developer几个可能的隐患》介绍了几个场景。

其他历史文章,

《PLSQL Developer中文乱码问题》

《PLSQL Developer免密登录》

今天朋友碰巧问了个问题,PLSQL Developer的Preferences首选项中这个“AutoCommit posted records”是什么含义?

pymysql自动提交 plsql关闭自动提交_数据

首先看了下工具自带的手册,对“AutoCommit posted records”的介绍,

AutoCommit posted records.
This options controls if records posted through the result grid are automatically committed.

直译过来,就是这个选项控制通过结果集表格提交的记录是否自动提交事务。好像还是很晦涩,通过实验,能更直观理解。

创建测试表,

CREATE TABLE A(ID NUMBER);

使用for update,

SELECT * FROM a FOR UPDATE;

此时整张A表,都处于锁定状态,

pymysql自动提交 plsql关闭自动提交_pymysql自动提交_02

通常,我们选择“小锁”,打开编辑模式,

pymysql自动提交 plsql关闭自动提交_pymysql自动提交_03

对字段进行增删改操作,然后选择“对勾”,完成编辑,

pymysql自动提交 plsql关闭自动提交_PLSQL_04

重点来了,如果勾选了“AutoCommit posted records”,此时刚才编辑的数据,会自动提交,工具栏中commit和rollback的按钮是灰的,

pymysql自动提交 plsql关闭自动提交_oracle 中文语言集_05

否则,工具栏中commit和rollback是高亮的,说明要执行,

pymysql自动提交 plsql关闭自动提交_PLSQL_06

其实能想象到,“AutoCommit SQL”和“AutoCommit posted records”针对的是两种不同场景的数据维护操作,一个是通过SQL完成的数据增删改(“AutoCommit SQL”),另一个则是通过for update编辑结果集表格的形式完成数据增删改(“AutoCommit posted records”)。

可以看出,PLSQL Developer软件功能设计的还是很精妙的,但还是开始说的,我们得了解清楚所作操作的影响,不能当做纯黑盒,才可能避免入“坑”,让工具成为我们放心的助手。

文章至此。



pymysql自动提交 plsql关闭自动提交_pymysql自动提交_07