我们执行一个查询sql,比如select * from Table t;的时候,
想要去编辑他的结果,点击工具栏上那个小锁,会有提示:“这些查询结果不可更新,请包括ROWID..........”
然后我们来看plsql自带的一些功能
在某个表名上右击点击“查询数据”出现的sql语句是:select * from Table t;
在某个表名上右击点击“修改数据”出现的sql语句是:select t.*, t.rowid from Table t;
方法1:
比如我们查询这样一条sql:select A,B from AB
如果想让他编辑的话可以改为以下sql:select t.A,t.B,t.rowid from AB t
查询后 点击查询结果工具栏上的 那个小锁,就可以编辑查询的数据了,然后点击对号,再去工具栏提交事务就OK了;
方法2:
比如不想查rowid 可以使用for update 然后在编辑
比如sql语句:select * from Table t
改为: select * from Table t for update
查询后 点击查询结果工具栏上的 那个小锁,就可以编辑查询的数据了,然后点击对号,再去工具栏提交事务就OK了;
PS:
仔细看的话,会发现二者是有区别的,前者是当点击小锁,修改之后再点击对号,事务的提交和回滚按钮才亮。
而后者是执行完for update的sql,事务的提交和回滚按钮就亮了,这样做的话就会锁住记录,除非你的操作完成后手动提交或者回滚,
否则其他的所有操作都处于等待状态,不推荐。
结果:推荐前者,只有当点击对号才去锁记录。select t.*,rowid from Table t;
时间: 2024-10-14 20:21:06