我們執行一個查詢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;