0
假設您有3個相關表,並且您必須執行3個mysql查詢來插入/更新其值。如果其中一個失敗或插入一個不適當的值,是否有辦法撤消/回滾事務或在事務上設置一些約束規則,或者您是否總是必須自行檢查每個事務?確保mysql事務成功完成的可能方法是什麼?
假設您有3個相關表,並且您必須執行3個mysql查詢來插入/更新其值。如果其中一個失敗或插入一個不適當的值,是否有辦法撤消/回滾事務或在事務上設置一些約束規則,或者您是否總是必須自行檢查每個事務?確保mysql事務成功完成的可能方法是什麼?
用下面的代碼你可以做任何查詢..但是如果一個錯誤查詢被回滾。
BEGIN TRANSACTION
BEGIN TRY
//do every query you need. if one errors it everything is off.
COMMIT TRANSACTION
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage
ROLLBACK TRANSACTION
END CATCH