之前在某测试机上用update更新表,没有commit,也没有关PL/SQL Developer。
第二天,在自己电脑上查看该表,发现记录并没有更新
想用SQL语句重新更新,执行了十多分钟还没执行完。
想重新手动更新,提示:
至此,发现该表已经被锁定了,原因就是之前在测试机上使用了update却没有提交(commit)!!
DML操作如 insert,delete,update,select...for update 等都会触发表级锁和行级锁,
DML操作之后,commit操作之前,表会处于锁定状态,其它事务无法对该表进行操作!
所以,以后在DML操作之后记得加上语句:commit; 或者手动点击Commit 。
另外,PL/SQL Developer提供了自动提交的设置:
a.事务执行后自动提交:Tools -> Preferences -> Window Types -> SQL Window:勾选“AutoCommit SQL”,即可实现自动提交操作。
b.退出登录自动提交:Tools -> Preferences -> Oracle -> Connection -> Log off with open transaction:选择“Commit”。
--------------------------------------分割线 --------------------------------------
rlwrap - 解决Linux下SQLPLUS退格、上翻键乱码问题
通过设置SQLPLUS ARRAYSIZE(行预取)加快SQL返回速度
--------------------------------------分割线 --------------------------------------