首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在成功时导入sqldump失败回滚

MySQL在成功时导入sqldump失败回滚
EN

Stack Overflow用户
提问于 2016-04-13 14:47:40
回答 2查看 1K关注 0票数 1

我有几个SQL脚本(alter、create、insert data、update等)。

我把它包装成一笔交易

代码语言:javascript
复制
SET AUTOCOMMIT = 0;
START TRANSACTION;
//code create, alter, insert...
COMMIT

我以为它只有在成功的时候才会处理代码。但即使失败我也修改了表格。所以我必须恢复数据库才能再次运行脚本。

我试着用COMMIT代替ROLLBACK。但没什么用。

只有在成功之后才有办法得到改变吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-13 15:23:05

我发现这是不可能的。http://dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html

票数 0
EN

Stack Overflow用户

发布于 2016-04-13 15:04:39

在发生故障时尝试处理回滚错误:

代码语言:javascript
复制
DECLARE CONTINUE HANDLER FOR NOT FOUND 
    BEGIN 
        SET @error = 1;
        SET @error_string = 'erreur de type NOT FOUND';
    END;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION   
    BEGIN 
        SET @error = 1;
        SET @error_string = 'erreur de type SQLEXCEPTION';
    END;
SET @error = 0;
SET @error_string = '';
-- start transact
START TRANSACTION;
//code ...
    IF (@error <> 0) THEN
    ROLLBACK;
    //LEAVE MAj_DOC;
ELSE 
    commit;
END IF;
END
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36602041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档