MySQL:存储过程中的事务 [英] MySQL : transaction within a stored procedure

查看:544
本文介绍了MySQL:存储过程中的事务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

The basic structure of my stored procedure is,

BEGIN

    .. Declare statements ..

    START TRANSACTION;

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

    COMMIT;

END

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

MySQL version: 5.1.61-0ubuntu0.11.10.1-log

当前,如果查询2"失败,则提交查询1"的结果.

Currently, if 'query 2' fails, result of 'query 1' is committed.

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

推荐答案

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

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

Basically you declare error handler which will call rollback

START TRANSACTION;

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

这篇关于MySQL:存储过程中的事务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆