MySQL事务部分回滚-回滚到指定保存点
我们可以在mysql事务处理过程中定义保存点(SAVEPOINT),然后回滚到指定的保存点前的状态。
定义保存点,以及回滚到指定保存点前状态的语法如下。
- 定义保存点---SAVEPOINT 保存点名;
- 回滚到指定保存点---ROLLBACK TO SAVEPOINT 保存点名:
下面演示将向表user中连续插入3条数据,在插入第2条数据的后面定义一个保存点,最后看看能否回滚到此保存点。
1、查看user表中的数据
- mysql> select * from user;
- +-----+----------+-----+------+
- | mid | name | scx | word |
- +-----+----------+-----+------+
- | 1 | zhangsan | 0 | NULL |
- | 2 | wangwu | 1 | NULL |
- +-----+----------+-----+------+
- 2 rows in set (0.05 sec)
2、mysql事务开始
- mysql> BEGIN;
- Query OK, 0 rows affected (0.00 sec)
3、向表user中插入2条数据
- mysql> INSERT INTO user VALUES ('3','one','0','');
- Query OK, 1 row affected (0.08 sec)
- mysql> INSERT INTO user VALUES ('4,'two','0','');
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from user;
- +-----+----------+-----+------+
- | mid | name | scx | word |
- +-----+----------+-----+------+
- | 1 | zhangsan | 0 | NULL |
- | 2 | wangwu | 1 | NULL |
- | 3 | one | 0 | |
- | 4 | two | 0 | |
- +-----+----------+-----+------+
- 4 rows in set (0.00 sec)
4、指定保存点,保存点名为test
- mysql> SAVEPOINT test;
- Query OK, 0 rows affected (0.00 sec)
5、向表user中插入第3条数据
- mysql> INSERT INTO user VALUES ('5','three','0','');
- Query OK, 1 row affected (0.00 sec)
- mysql> select * from user;
- +-----+----------+-----+------+
- | mid | name | scx | word |
- +-----+----------+-----+------+
- | 1 | zhangsan | 0 | NULL |
- | 2 | wangwu | 1 | NULL |
- | 3 | one | 0 | |
- | 4 | two | 0 | |
- | 5 | three | 0 | |
- +-----+----------+-----+------+
- 5 rows in set (0.02 sec)
6、回滚到保存点test
- mysql> ROLLBACK TO SAVEPOINT test;
- Query OK, 0 rows affected (0.31 sec)
- mysql> select * from user;
- +-----+----------+-----+------+
- | mid | name | scx | word |
- +-----+----------+-----+------+
- | 1 | zhangsan | 0 | NULL |
- | 2 | wangwu | 1 | NULL |
- | 3 | one | 0 | |
- | 4 | two | 0 | |
- +-----+----------+-----+------+
- 4 rows in set (0.00 sec)
我们可以看到保存点test以后插入的记录没有显示了,即成功团滚到了定义保存点test前的状态。利用保存点可以实现只提交事务中部分处理的功能。
MySQL事务部分回滚-回滚到指定保存点的更多相关文章
- OS X环境下SVN回滚工程到指定版本,回滚指定文件到指定版本
1.打开命令行终端 2.cd + 工程或文件目录 3.svn update 工程目录或文件目录 -r 版本号 在Xcode中选中文件,右键选择''show in finder''(也可以用快捷键,不过 ...
- php+mysql实现事务回滚
模拟条件:第一个表插入成功,但是第二个表插入失败,回滚.第一个表插入成功,第二个表插入成功,执行.第一个表插入失败,第二个表插入成功,回滚.第一个表插入失败,第二个表插入失败,回滚.以上情况都需要回滚 ...
- mysql有回滚,php没有回滚的说法
mysql 事务表是有回滚的说法.当发生mysql层面的错误才会执行回滚
- spring 事务回滚
1.遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误.伪代码如下: public method() { Dao1.save(Person1); Dao1.save( ...
- spring管理事务回滚
spring 事务回滚 1.遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误.伪代码如下: ? 1 2 3 4 5 6 7 public method() { ...
- k8s-控制器deployment弹性扩容,更新镜像,回滚,DaemonSet,StatufluSet
目录 1.控制器deployment,DaemonSet,StatufluSet 2.控制器-deployment 弹性扩容 方式1-修改配置清单 方式2-打标签 方式3-scale 更新镜像 方式1 ...
- 6.Git代码回滚
1.代码修改并提交 我们已经成功地添加并提交了一个helloWorld.txt文件,现在,是时候继续工作了. 于是,我们继续修改helloWorld.txt文件,改成如下内容: $ vi helloW ...
- Oracle回滚段的概念,用法和规划及问题的解决
回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回 ...
- [Oracle]关于回滚段的一些转贴摘录
ORACLE 回滚段 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段 ...
随机推荐
- Java 之 Response 对象
Response 对象 一.Response 原理和继承结构 原理和继承结构参考 request. 二.Response 对象 Response 就是用来设置响应消息. 1.设置响应行 响应头格式 ...
- 单词eschaunge交易所eschaunge交换
Exchange of one person or thing for another; reciprocal giving and receiving: (a) of prisoners of wa ...
- android ViewFlipper(翻转视图) 使用
1.布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- Keystore was tampered with, or password was incorrect
#修改key条目密码 # keytool -keypasswd -alias test.com -keypass oldkeypwd -new newkeypwd -storepass storepw ...
- 云计算与大数据实验:Hbase shell操作成绩表
[实验目的] 1)了解hbase服务 2)学会hbase shell命令操作成绩表 [实验原理] HBase是一个分布式的.面向列的开源数据库,它利用Hadoop HDFS作为其文件存储系统,利用Ha ...
- pinpoint的只是总结
1,对于拓扑图不显示的原因,可能是hbase版本和pp版本不匹配的原因2,calltree中出现 API-METADATA-NOT-FOUND时是因为HBASE中的元数据被清除了,需要重启应用才可以. ...
- Pthon魔术方法(Magic Methods)-反射
Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...
- 推荐一个Web漏洞靶场
https://github.com/zhuifengshaonianhanlu/pikachu 暂时先空着 安装好是这样的 博主先去玩了,回来再写博客,2333
- 接口测试 dubbo 接口测试技术
本文转自测试之家 https://testerhome.com/topics/10481 dubbo是阿里巴巴开源的一套rpc方案,以为理念很契合微服务,这几年很火,用户里面不凡京东,当当,去哪儿等大 ...
- 在Windows下/Linux下安装jdk版本
到官网https://www.oracle.com/technetwork/java/javase/downloads/index.html选择适合自己的版本, 目前我做测试和开发主要用的是jdk 8 ...