2011-06-10 68 views
0

假設您有3個相關表,並且您必須執行3個mysql查詢來插入/更新其值。如果其中一個失敗或插入一個不適當的值,是否有辦法撤消/回滾事務或在事務上設置一些約束規則,或者您是否總是必須自行檢查每個事務?確保mysql事務成功完成的可能方法是什麼?

回答

2

用下面的代碼你可以做任何查詢..但是如果一個錯誤查詢被回滾。

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 
相關問題