当前位置:  数据库>mysql

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

    来源: 互联网  发布时间:2014-10-15

    本文导语:  mysql创建存储过程的官方语法为: 代码如下:START TRANSACTION | BEGIN [WORK]COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]SET AUTOCOMMIT = {0 | 1} 我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个...

mysql创建存储过程的官方语法为:

代码如下:

START TRANSACTION | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET AUTOCOMMIT = {0 | 1}

我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使用事务的collback,这样是不能实现回滚的或者说可能出现意外的错误。

那么我们需要的是一个条件判断,比如loop,因为MySql默认是会自动提交的,所以我们不用担心rollback之后条件退出而没有commit。

具体mysql语句如下:

代码如下:

begin
 loop_lable: loop
  start transaction;
   insert into table1(f_user_id) values(user_id);
  if row_count() < 1 then 
    set @ret = -1;  
    rollback; 
    leave loop_label;
  end if;
  insert into table2(f_user_id) values(user_id);
 if row_count() < 1 then 
  set @ret = -1; 
    rollback; 
   leave loop_label;
  end if;
   insert into table3(f_user_id) values(user_id);
  if row_count() < 1 then 
    set @ret = -1; 
    rollback; 
    leave loop_label;
  else 
    set @ret = 0; 
    commit; 
    leave loop_label;
  end if;
  end loop;
  select @ret;
end 


    
 
 

您可能感兴趣的文章:

  • Mysql Select查询执行流程介绍及实例
  • php读取mysql数据库入门实例
  • mysql 存储过程实例和基本语法
  • php读取mysql入门实例
  • 在Mysql上创建数据表实例代码
  • MySQL 有输入输出参数的存储过程实例
  • Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份
  • mysql存储过程实例
  • PHP处理SQL脚本文件导入到MySQL的代码实例
  • Sphinx/MySQL 协议支持与SphinxQL应用实例
  • mysql alter语句用法实例
  • mysql存储过程中使用游标的实例
  • C# 批量插入Mysql数据的实例代码
  • java连接MySQl数据库实例代码
  • 求助:linux mysql多实例,2002 (HY000): Can't connect to local MySQL server
  • MySql游标的使用实例
  • mysql自动增量备份的实例方法(本地备份与远程备份)
  • 配置MySQL与卸载MySQL实例操作
  • php读取mysql的简单实例
  • php+mysql不用递归实现的无限级分类实例(非递归)
  • shell监控脚本实例—监控mysql主从复制
  • mysql 事务 回滚 提交
  • python连接mysql并提交mysql事务示例
  • JSP+ MySQL中文乱码问题post提交乱码解决方案
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解析mysql二进制日志处理事务与非事务性语句的区别
  • MySQL C API中有没有事务处理的函数啊?
  • 基于mysql事务、视图、存储过程、触发器的应用分析
  • MYSQL事务回滚的2个问题分析
  • 为mysql数据库添加添加事务处理的方法
  • Mysql中的事务是什么如何使用
  • mysql 锁表锁行语句分享(MySQL事务处理)
  • mysql 事务处理及表锁定深入简析
  • MySql的事务使用与示例详解
  • PHP中执行MYSQL事务解决数据写入不完整等情况
  • MySql事务无法回滚的原因有哪些
  • MySQL事务处理与应用简析
  • mysql的XA事务恢复过程详解
  • mysql的XA事务恢复过程详解 iis7站长之家
  • 利用mysql事务特性实现并发安全的自增ID示例
  • MySQL存储过程例子(包含事务,输出参数,嵌套调用)
  • mysql存储过程事务管理简析
  • MySQL InnoDB之事务与锁详解
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程
  • 在Linux内安装了Mysql,无法进入Mysql.
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3