START TRANSACTION | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET AUTOCOMMIT = {0 | 1}
以上是mysql创建存储过程的官方语法。我这里要说明的mysql事务处理多个SQL语句的回滚情况。比如说在一个存储过程中启动一个事务,这个事务同时往三个表中插入数据,每插完一张表需要判断其是否操作成功,如果不成功则需要回滚,最后一张表判断其插入成功之后commit。这里需要注意的是不能直接使用事务的collback,这样是不能实现回滚的或者说可能出现意外的错误。
     那么我们需要的是一个条件判断,比如loop,因为MySql默认是会自动提交的,所以我们不用担心rollback之后条件退出而没有commit。
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事务的提交和回滚相关推荐

  1. php事务和回滚,php – Mysql事务:提交和回滚

    我将我的PhpMyAdmin数据库引擎从MyISAM更新到INNODB以允许回滚. 这是我的SQL查询: START TRANSACTION; UPDATE jkm_content SET state ...

  2. java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...

    详解Java的JDBC API中事务的提交和回滚 如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关 ...

  3. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  4. 二十八、事务的提交与回滚演示

    1.创建表 2.查询表中数据 3.开启事务START TRANSACTION; 4.插入数据 5.查看数据 6.修改数据 7.查看数据 8.回滚事务 9.查看数据 自动提交模式 自动提交模式用于决定新 ...

  5. java pg数据库事务回滚,基于Postgresql 事务的提交与回滚解析

    用过oracle或mysql的人都知道在sqlplus或mysql中,做一个dml语句,如果发现做错了,还可以rollback;掉,但在PostgreSQL的psql中,如果执行一个dml,没有先运行 ...

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

    mysql创建存储过程的官方语法为: 复制代码 代码如下:START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] R ...

  7. mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...

    # ls /usr/local/mysql/bin mysql    mysqladmin    mysqldump    客户端程序 mysqld   mysqld_safe             ...

  8. MySQL中事务的提交和回滚机制

    应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...

  9. workbench 手动提交事务_mysql实现事务的提交和回滚实例

    mysql创建存储过程的官方语法为: START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] RO ...

最新文章

  1. C++继承的基本语法
  2. CDK上安装kube-dashboard
  3. 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
  4. 计算机科学概论(2)数据的操控和程序的执行
  5. C#为什么会这么慢之命运之终章-真理篇for firelong
  6. 在VHD文件上安装Windows 7或Windows 2008 R2
  7. 光模块功能失效的原因有哪些?
  8. Unity2020.1新功能探路:2D设计师工具相关更新
  9. bigdecimal 科学计数转普通计数_项目实践篇二:S71500高速脉冲计数及工程应用
  10. UVa 10118 免费糖果(记忆化搜索+哈希)
  11. MVC 《web考勤管理系统》 项目研发文献
  12. 淘宝CMS新玩法,当粉丝营销遇上直通车,会擦出怎样的火花?
  13. 上海计算机短期培训,上海日语短期培训速成班
  14. ov5640帧率配置_ov5640摄像头设备驱动
  15. Python爬虫之BeautifulSoup
  16. uvm_primer ch3 BFM笔记
  17. UFS和eMMC简介与区别
  18. KITTI自动驾驶数据集的训练和检测过程(人、车检测案例)、KITTI数据集的TFRecord格式存储、YOLO V3/Yolo V3 Tiny 迁移学习
  19. 什么是转义字符?为什么用转义字符?常见转义字符使用情况?
  20. 创意h5游戏案例:记忆类H5手机游戏评测

热门文章

  1. 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )
  2. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )
  3. 【Netty】NIO 简介 ( NIO 模型 | NIO 三大组件 | 选择器 Selector | 通道 Channel | 缓冲区 Buffer | NIO 组件分配 | 缓冲区示例 )
  4. 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )
  5. c++入门之运算符重载
  6. #在android studio中维护日程管理系统
  7. C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什...
  8. 数据结构和算法设计专题之---判断单链表中是否有环,环的长度,环的入口节点...
  9. ArcGIS Web 应用开发框架(ADF)中的Ajax
  10. C++作用域为类的常量