[英]mysql transaction in stored procedure (locking/rollback)
存儲過程中的事務是否進行任何鎖定以防止其他人更新表?
我還需要顯式地放入回滾邏輯,還是如果由於從未到達提交命令而發生錯誤,事務將自動回滾。
存儲過程中的事務是否進行任何鎖定以防止其他人更新表?
當您在InnoDB
表上執行某些DML
時,受影響的行將被鎖定,直到事務結束為止(無論它是否在存儲過程中)。
您可以在鎖定它的同一事務中修改鎖定的行。
要顯式鎖定某些行,請發出:
SELECT *
FROM table
WHERE condition
FOR UPDATE
除了提交或回滾事務外,沒有其他方法可以解鎖行
我是否需要顯式放入回滾邏輯,或者如果由於從未到達commit命令而發生錯誤,則事務將自動回滾。
您需要顯式執行回滾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.