文章詳情頁
mysql for update 如果事務一直沒有提交會不會這表數據一直鎖在那里
瀏覽:110日期:2022-06-15 08:55:29
問題描述
mysql for update 鎖住了一條或多條數據,或者是整個表 如果事務一直沒有提交(比如服務器掛掉了)會不會這表數據一直鎖在那里
問題解答
回答1:不會。客戶端連接斷開后,會自動釋放鎖。
客戶端1
set AUTOCOMMIT = 0;BEGIN;SELECT * FROM articles WHERE id=1 FOR UPDATE ;
客戶端2
set AUTOCOMMIT = 0;BEGIN;SELECT * FROM articles WHERE id=1 FOR UPDATE ;
這時,客戶端2的查詢會卡住。直到客戶端1 commit 或 rollback 。但是,如果客戶端1直接關閉窗口斷開連接,客戶端2也能直接拿到鎖。說明客戶端斷開時,會自動釋放鎖。
那么問題來了,客戶端1斷開連接后,是自動 rollback 了嗎?
相關文章:
1. php - mysql 模糊搜索問題2. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?3. html - 爬蟲時出現“DNS lookup failed”,打開網頁卻沒問題,這是什么情況?4. javascript - 求幫助 , ATOM不顯示界面!!!!5. php - 微信開發驗證服務器有效性6. [python2]local variable referenced before assignment問題7. python中怎么對列表以區間進行統計?8. javascript - js setTimeout在雙重for循環中如何使用?9. java - idea創建多modules項目后,tomcat啟動失敗10. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?
排行榜
