PL/SQL如何在保证表不锁的情况下修改数据
PL/SQL Developer专门开发面向Oracle数据库的应用工具。用户可以通过PL/SQL对数据库进行相应的修改和其他操作。我们来说说数据库修改,大多数用户之间使用forupdate语句对数据库进行修改,导致表锁死的情况屡屡出现,那该如何才能避免这种情况能。
工具/原料
PL/SQL
打开PL/SQL
1、从本机找到PL/SQL Developer工具软件,点击打开软件

2、在PL/SQL Developer登录界面,输入相应的用户名和数据库实例名等进行登录。我这里以本地的cssxk为例进行登录。

3、登录后界面如图所示。

新建SQL窗口
1、在PL/SQL Developer界面中,找到文件→新建→SQL窗口

2、新建SQL窗口后,如图所示

示例演示
1、假如我们要修改ql_tdxg这张表中其中一个行的信息,大多数人的语句肯定是这样写的:select * from ql_td旌忭檀挢xg where qlbh='QL-151126105156-C2XI5122H0' for update

2、执行后,点击小锁解开表锁后,修改相应的字段

3、修改完成后,先点击√,然后点击小锁重新上锁

4、然后点击F10进行事务提交,提交时弹出提示框是否提交,点击是,提交后完成修改


5、其实这种修改语句是不可取的。像这里我写的还算好一点的,最起码还加上where的条件。大多数的人肯定连where语句都没有添加。这样的结果就是,很肯定会将整个表结构锁死,其他用户都无法进行操作编辑。
6、正确的语句应该是:select t.*,t.rowid from ql_tdxg t where qlbh='QL-151126105156-C2XI5122H0'这样就不会有锁表的情况。

7、修改后,点击对勾,上锁,提交事务即可。


