for update 和 rowid 的區別


SELECT a.*,rowid FROM test a;
SELECT * FROM test a FOR UPDATE;
  • 1
  • 2

for update 語句運行時,

會在對應行(where 條件)加上行級鎖,如果沒有where條件,會對全表進行加鎖 ,當其他人忘記提交或者回滾事務的時候,就會發生鎖表,只適合單人進行操作,不適合多人同時操作;

rowid 運行的時候,

並沒有給數據加上行級鎖,可以對數據進行編輯,提交的瞬間完成上鎖,提交,解鎖等動作。所以,當多人對表進行操作的時候,並不會產生無法操作的現象。

for update 和 rowid 的區別

SELECT a.*,rowid FROM test a;
SELECT * FROM test a FOR UPDATE;

for update 語句運行時,會在對應行(where 條件)加上行級鎖,如果沒有where條件,會對全表進行加鎖 ,當其他人忘記提交或者回滾事務的時候,就會發生鎖表,只適合單人進行操作,不適合多人同時操作;
rowid 運行的時候,並沒有給數據加上行級鎖,可以對數據進行編輯,提交的瞬間完成上鎖,提交,解鎖等動作。所以,當多人對表進行操作的時候,並不會產生無法操作的現象。


免責聲明!

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



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