mysql事务的提交和回滚
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事务的提交和回滚相关推荐
- php事务和回滚,php – Mysql事务:提交和回滚
我将我的PhpMyAdmin数据库引擎从MyISAM更新到INNODB以允许回滚. 这是我的SQL查询: START TRANSACTION; UPDATE jkm_content SET state ...
- java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...
详解Java的JDBC API中事务的提交和回滚 如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关 ...
- oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...
87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...
- 二十八、事务的提交与回滚演示
1.创建表 2.查询表中数据 3.开启事务START TRANSACTION; 4.插入数据 5.查看数据 6.修改数据 7.查看数据 8.回滚事务 9.查看数据 自动提交模式 自动提交模式用于决定新 ...
- java pg数据库事务回滚,基于Postgresql 事务的提交与回滚解析
用过oracle或mysql的人都知道在sqlplus或mysql中,做一个dml语句,如果发现做错了,还可以rollback;掉,但在PostgreSQL的psql中,如果执行一个dml,没有先运行 ...
- mysql 事务实例_mysql实现事务的提交和回滚实例
mysql创建存储过程的官方语法为: 复制代码 代码如下:START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] R ...
- mysql 提交修改_MySQL客户端、服务器端工具、sql_mode、存储引擎修改、事务的提交和回滚、隔离级别...
# ls /usr/local/mysql/bin mysql mysqladmin mysqldump 客户端程序 mysqld mysqld_safe ...
- MySQL中事务的提交和回滚机制
应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...
- workbench 手动提交事务_mysql实现事务的提交和回滚实例
mysql创建存储过程的官方语法为: START TRANSACTION | BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] RO ...
最新文章
- C++继承的基本语法
- CDK上安装kube-dashboard
- 使用 jQuery UI Widget Factory 编写有状态的插件(Stateful Plugins)
- 计算机科学概论(2)数据的操控和程序的执行
- C#为什么会这么慢之命运之终章-真理篇for firelong
- 在VHD文件上安装Windows 7或Windows 2008 R2
- 光模块功能失效的原因有哪些?
- Unity2020.1新功能探路:2D设计师工具相关更新
- bigdecimal 科学计数转普通计数_项目实践篇二:S71500高速脉冲计数及工程应用
- UVa 10118 免费糖果(记忆化搜索+哈希)
- MVC 《web考勤管理系统》 项目研发文献
- 淘宝CMS新玩法,当粉丝营销遇上直通车,会擦出怎样的火花?
- 上海计算机短期培训,上海日语短期培训速成班
- ov5640帧率配置_ov5640摄像头设备驱动
- Python爬虫之BeautifulSoup
- uvm_primer ch3 BFM笔记
- UFS和eMMC简介与区别
- KITTI自动驾驶数据集的训练和检测过程(人、车检测案例)、KITTI数据集的TFRecord格式存储、YOLO V3/Yolo V3 Tiny 迁移学习
- 什么是转义字符?为什么用转义字符?常见转义字符使用情况?
- 创意h5游戏案例:记忆类H5手机游戏评测
热门文章
- 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )
- 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )
- 【Netty】NIO 简介 ( NIO 模型 | NIO 三大组件 | 选择器 Selector | 通道 Channel | 缓冲区 Buffer | NIO 组件分配 | 缓冲区示例 )
- 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )
- c++入门之运算符重载
- #在android studio中维护日程管理系统
- C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什...
- 数据结构和算法设计专题之---判断单链表中是否有环,环的长度,环的入口节点...
- ArcGIS Web 应用开发框架(ADF)中的Ajax
- C++作用域为类的常量