文章詳情頁
mysql for update 如果事務一直沒有提交會不會這表數據一直鎖在那里
瀏覽:221日期: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. linux - 將java項目部署在vbox的centos系統上,無法實現外網訪問到java項目2. node.js - nodejs+express+vue3. javascript - node得到req不能得到boolean4. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。5. mysql時間格式問題6. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?7. python對8000行csv添加列8. DADB.class.php文件的代碼怎么寫9. java - web端百度網盤的一個操作為什么要分兩次請求服務器, 有什么好處嗎10. python 字符串匹配問題
排行榜

網公網安備