【Oracle/錯誤碼】select max(id) from emp for update 是鎖行還是鎖表?結果爆ORA-01786錯誤: 此查詢表達式不允許 FOR UPDATE


有個特殊場景,有人想用select max(id)+1 from emp for update 得到新ID,當時還未執行此句,一群人針對此語句是鎖行還是鎖表爭論了一會,准備做個實驗驗證一下,結果出現ORA-01786錯誤:

SQL> select max(id) from emp for update;
select max(id) from emp for update
                        *1 行出現錯誤:
ORA-01786: 此查詢表達式不允許 FOR UPDATE


SQL> select max(id)+1 from emp for update;
select max(id)+1 from emp for update
                          *1 行出現錯誤:
ORA-01786: 此查詢表達式不允許 FOR UPDATE

看來Oracle對此早有准備,對於聚組函數(集計函數)的查詢不允許跟 for update。

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM