2011-06-10 63 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 
相关问题