如果省略COMMIT TRANSACTION 則自動回滾
在給定的SQL 語句中:
START TRANSACTION; BEGIN; INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000'); /** Assume there is syntax error SQL here...**/ Blah blah blah DELETE FROM prp_property1 WHERE environment_name = 'production'; COMMIT TRANSACTION;
在給定的SQL 語句中:
問題是否出現由於語法錯誤而永遠無法到達COMMIT TRANSACTION 語句,因此交易會自動回滾。
事務回滾行為
與假設相反,事務不會自動回滾遇到錯誤時回滾。此行為通常在客戶端應用程式設定中實現。例如,MySQL 命令列用戶端在出現錯誤時終止執行並退出,這會導致任何正在進行的交易回溯。死鎖或鎖等待逾時也會隱式觸發回滾。
在這些特定場景之外,錯誤不會自動導致回滾。回傳錯誤,開發人員可以自由決定下一步的操作,包括儘管出現錯誤仍提交交易。以上是COMMIT TRANSACTION 遺漏會自動回溯交易嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!