Try/Catch and @@TRANCOUNT in MySQL

Всем привет, подскажите плиз, какая есть альтернатива блока CATCH в MySQL

BEGIN TRANSACTION
BEGIN TRY 

некоторые действия с инсертами

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 ;

            IF @@TRANCOUNT > 0 
                BEGIN

                    ROLLBACK TRANSACTION ;

                UPDATE  TABLE ...


                END 
        END CATCH

    IF @@TRANCOUNT > 0 
COMMIT TRANSACTION

Я делал следующим образом, возможно нужно что-то изменить/добавить

DECLARE EXIT HANDLER FOR SQLWARNING, SQLEXCEPTION, NOT FOUND
        BEGIN

            SET @error_severity := 0;
            SET @error_line := 0;
            GET STACKED DIAGNOSTICS  CONDITION 1 @error_state = RETURNED_SQLSTATE, 
                                        @error_number = MYSQL_ERRNO, 
                                        @error_message = MESSAGE_TEXT;

            SELECT 
                @error_number AS ErrorNumber,
                @error_severity AS ErrorSeverity,
                @error_state AS ErrorState,
                @error_line AS ErrorLine,
                @error_message AS ErrorMessage;

          ROLLBACK;

                UPDATE  TABLE ...

        END;

Ответы (0 шт):