MySQL:存储过程中的事务

问题描述

看看http://dev.mysql.com/doc/refman/5.0/en/declare- handler.html

基本上,您声明错误处理程序,它将调用回滚

START TRANSACTION;

DECLARE EXIT HANDLER FOR sqlEXCEPTION 
    BEGIN
        ROLLBACK;
        EXIT PROCEDURE;
    END;
COMMIT;

解决方法

我的存储过程的基本结构是

BEGIN

    .. Declare statements ..

    START TRANSACTION;

        .. Query 1 ..
        .. Query 2 ..
        .. Query 3 ..

    COMMIT;

END

MySQL版本: 5.1.61-0ubuntu0.11.10.1-log

当前,如果“查询2”失败,则提交“查询1”的结果。

  • 如果任何查询失败,如何回滚事务?