0
在存儲過程中執行一個事務嗎?是否有任何鎖定以防止他人更新表?存儲過程中的mysql事務(鎖定/回滾)
我也需要明確地放入回滾邏輯,否則如果發生錯誤是因爲它永遠不會到達commit命令,事務會自動回滾。
在存儲過程中執行一個事務嗎?是否有任何鎖定以防止他人更新表?存儲過程中的mysql事務(鎖定/回滾)
我也需要明確地放入回滾邏輯,否則如果發生錯誤是因爲它永遠不會到達commit命令,事務會自動回滾。
存儲過程中的事務是否執行任何鎖定以阻止其他人更新表?
當您執行上InnoDB
表中的一些DML
,受影響的行會被鎖定,直至交易結束時(不要緊它是一個存儲過程內或不)。
您可以修改鎖定它的同一個事務中的鎖定行。
要明確地鎖定一些行,問題:
SELECT *
FROM table
WHERE condition
FOR UPDATE
除了commiting或回滾事務,沒有其他的方式來解鎖行
我是否需要明確提出在回滾邏輯,或者如果發生錯誤,事務會自動回滾,因爲它永遠不會到達提交命令。
您需要明確執行回滾。
我想我問的是行將保持鎖定的交易期間。這意味着如果我有多個更新,鎖定將在每次更新後釋放,或者僅在所有更新完成後纔會釋放,因爲它們處於事務中。 – richs 2009-04-28 21:12:55