`
y806839048
  • 浏览: 1107645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

MySQL存储过程中实现回滚

阅读更多

用存储过程处理复杂的业务时,可能涉及到对多张表格的操作,在任一个步骤出了问题,就需要对前面的操作回滚。举例实现:

复制代码
 1 DROP PROCEDURE IF EXISTS pro_test;
 2 CREATE PROCEDURE pro_test
 3 (
 4     para_a varchar(50),
 5     para_b varchar(50)
 6 )
 7 BEGIN
 8     DECLARE result_code INTEGER DEFAULT 0; -- 定义返回结果并赋初值0
 9     DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET result_code=1; -- 在执行过程中出任何异常设置result_code为1
10     DECLARE CONTINUE HANDLER FOR NOT FOUND SET result_code = 2; -- 如果表中没有下一条数据则置为2
11 ##有对应的异常时候会跳到这里执行语句,如果是CONTINUE 就会继续异常代码处向下执行
12     START TRANSACTION; -- 开始事务
13 
14     /*
15     * 这里写具体的业务处理...
16     * 业务处理过程中可以根据实际情况自定义result_code
17     */
18 
19     IF result_code = 1 THEN -- 可以根据不同的业务逻辑错误返回不同的result_code,这里只定义了1和0
20         ROLLBACK; 
21     ELSE 
22         COMMIT; 
23     END IF;
24 select result_code;
25 END ;
复制代码
分享到:
评论

相关推荐

    MySQL存储过程.rar

    在实际应用中,MySQL存储过程广泛用于实现数据库的事务处理、数据备份和恢复、业务规则的封装等场景。例如,可以创建一个存储过程来批量插入数据,或者在一组操作失败时自动回滚事务,保证数据一致性。 在提供的...

    MySQL InnoDB 日志 回滚段 & 崩溃恢复实现详解 修改版

    ### MySQL InnoDB 日志 回滚段 & 崩溃恢复实现详解 #### 知识准备 - **ACID** - 在数据库管理系统中,事务具有四个关键属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...

    mysql存储过程之错误处理实例详解

    MySQL存储过程中的错误处理是确保程序稳定性和可靠性的重要部分。在存储过程中,错误处理允许开发者预定义当特定错误出现时的响应方式,从而避免程序意外中断或者数据损坏。本篇文章将详细阐述如何在MySQL中进行存储...

    PHP和MySQL存储过程实例

    根据给定的信息,我们可以深入探讨PHP与MySQL存储过程的相关知识点,包括如何在MySQL中使用`CONCAT`函数、创建存储过程以及如何通过PHP脚本来调用这些存储过程。 ### 使用 CONCAT 函数 #### 标题中的示例 ```sql ...

    MySql存储过程与事务处理教学PPT

    什么情况适合用存储过程? 当多个用不同语言开发的应用程序或不同平台的应用程序需要去执行相同的数据库操作. (避免为各个程序都开发相同的功能) 安全性要求较高时,使用存储程序和...MySql存储过程与事务处理教学PPT

    mysql 流水号 存储过程 附表结构

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者编写包含一系列SQL语句的程序,以便在需要时执行。在“mysql 流水号 存储过程 附表结构”这个主题中,我们主要探讨如何在MySQL中创建一个存储过程来...

    mysql实现事务的提交与回滚的实例详解

    在存储过程中,可以设置一个变量(如`t_error`),当发生SQL异常时,将其值设为1。然后,根据该变量的值决定是提交还是回滚事务。 - 第一种方法涉及声明`CONTINUE HANDLER FOR SQLEXCEPTION`,当发生异常时,将`t_...

    MySQL存储过程调试技巧.pdf

    MySQL存储过程调试技巧是数据库开发中的重要技能,尤其对于MySQL这种广泛应用的关系型数据库。MySQL存储过程允许开发者封装复杂的逻辑操作,提升数据处理的效率。然而,由于存储过程的特性,调试过程中可能会遇到...

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...

    MySQL数据库误操作后快速回滚的方法

    MySQL数据库在日常操作中,有时会因误操作导致数据丢失或错误,此时快速回滚到误操作前的状态显得尤为重要。本篇文章将详细讲解如何在MySQL数据库误操作后进行快速回滚,以确保数据的安全。 首先,MySQL的二进制...

    mysql实现事务的提交和回滚实例

    比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使

    MySQL存储过程:批量操作的高效利器

    ### MySQL存储过程:批量操作的高效利器 #### 一、MySQL概述 MySQL 是一个非常流行的开源关系型数据库管理系统(RDBMS),它以其强大的功能、可靠性和灵活性在Web应用程序领域中占据着重要的地位。MySQL 基于结构...

    mysql存储例程、存储过程、存储函数进阶学习

    MySQL存储例程,包括存储过程和存储函数,是数据库管理中的重要组成部分,它们极大地提高了数据库应用的效率和灵活性。在进阶学习中,我们需要深入理解这些概念及其在实际开发中的应用。 1. **存储过程**:存储过程...

    MySQL SQL高级特性-存储过程-触发器-事务

    MySQL是目前最流行的开源关系型数据库管理系统之一,它提供了...在本文中,我们学习了MySQL存储过程的定义和优点,触发器的概念,以及事务的基本原理。通过这些高级特性,我们可以开发出更稳定、高效的数据库应用程序。

    MySQL存储过程 ERROR Handler 异常处理.doc

    MySQL存储过程中的ERROR Handler是用于异常处理的关键机制,它允许开发者在遇到错误时进行定制化的响应,而不是让整个过程崩溃。在存储过程中,错误处理通常涉及声明一个或多个HANDLER,这些HANDLER会在特定错误发生...

    MySQL+5.0存储过程

    10. **嵌套存储过程**:MySQL 5.0允许在一个存储过程中调用另一个存储过程,实现更复杂的逻辑结构。 通过了解和掌握这些特性,开发者能够更有效地利用MySQL 5.0存储过程来构建高效、可靠的数据库应用。提供的...

Global site tag (gtag.js) - Google Analytics