首页 > 数据库 >数据库事务之SavePoint

数据库事务之SavePoint

时间:2023-03-20 23:45:07浏览次数:63  
标签:事务 affected SavePoint 0.01 数据库 sec mysql Query +----+------+

SavePoint是数据库事务中的一个概念, 可以将整个事务切割为不同的小事务, 可以选择将状态回滚到某个小事务发生时的样子。

语法:

--创建保存点
SAVEPOINT 保存点的名称;
--回滚到某个保存点
ROLLBACK [WORK] TO 保存点的名称;
--删除保存点
RELEASE SAVEPOINT 保存点名称;

操作演示:

// 开始查询空表
mysql> select * from t_x;
Empty set
  
// 开启事务
mysql> begin;
Query OK, 0 rows affected (0.01 sec)
  
// 插入第一条数据
mysql> insert into t_x value(1, '1');
Query OK, 1 row affected (0.01 sec)
 
// 设置保存点
mysql> savepoint a1;
Query OK, 0 rows affected (0.01 sec)
  
// 此时查询一条数据
mysql> select * from t_x;
+----+------+
| id | name |
+----+------+
|  1 | 1    |
+----+------+
1 row in set (0.01 sec)
 
// 插入第二条数据
mysql> insert into t_x value(2, '2');
Query OK, 1 row affected (0.01 sec)
 
// 设置保存点2
mysql> savepoint a2;
Query OK, 0 rows affected (0.01 sec)
 
// 查询两条数据
mysql> select * from t_x;
+----+------+
| id | name |
+----+------+
|  1 | 1    |
|  2 | 2    |
+----+------+
2 rows in set (0.01 sec)
 
// 插入第三条数据
mysql> insert into t_x value(3, '3');
Query OK, 1 row affected (0.01 sec)
 
// 共三条
mysql> select * from t_x;
+----+------+
| id | name |
+----+------+
|  1 | 1    |
|  2 | 2    |
|  3 | 3    |
+----+------+
3 rows in set (0.01 sec)
 
// 回滚到第一个保存点
mysql> rollback to a1;
Query OK, 0 rows affected (0.01 sec)
 
// 此时查询,只有第一个保存点时的一条数据
mysql> select * from t_x;
+----+------+
| id | name |
+----+------+
|  1 | 1    |
+----+------+
1 row in set (0.00 sec)
 
// 尝试回滚到第二个保存点, 出错
mysql> rollback to a2;
1305 - SAVEPOINT a2 does not exist
mysql>

 

标签:事务,affected,SavePoint,0.01,数据库,sec,mysql,Query,+----+------+
From: https://www.cnblogs.com/zjfjava/p/17238446.html

相关文章

  • #yyds干货盘点#PostgreSQL数据库备份与恢复
    备份所有数据库pg_dumpall>db.out复制代码恢复所有数据库#执行这个命令的时候连接到哪个数据库无关紧要,因为pg_dumpall创建的脚本将会包含恰当的创建和连接数据库的命......
  • 你能谈谈数据库实现缓存最终一致性的一些方法吗?
    为什么需要缓存存储如mysql通常支持完整的ACID特性,因为可靠性,持久性等因素,性能普遍不高,高并发的查询会给mysql带来压力,造成数据库系统的不稳定。同时也容易产生延迟。根据......
  • Spring基于tx/aop声明式事务配置
    一、引入aop/tx命名空间<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http......
  • spring context.xmL配置数据库事务以及aop
    [color=red][b]xml配置方式[/b][/color]!--fromthefilecontext.xml--><?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.spri......
  • Oracle 数据库迁移,升级,打补丁必看的博客
    Oracle数据库迁移,升级,打补丁必看博客之前曾经多次看过这个大神的博客,当时没有太留意。今天查官方文档时,看着推荐的博客名字怎么这么熟悉,仔细看才发现他就是官方升级指引里......
  • 数据库运维---数据库备份策略
    数据库安装方式:通用二进制安装策略1:直接拷贝数据库文件步骤1:主服务器上停用数据库[root@node01~]#systemctlstopmysqld.service步骤2:进入数据目录,打包并压缩数据......
  • Spring@Transactional事务失效的场景
    ①未启用事务管理功能②事务方法所在类未被加载成Bean③事务方法不是public类型④事务方法被final修饰⑤事务方法被同类的方法调用⑥多线程调用⑦手动trycatch了异......
  • MySQL数据库的安装(保姆教学)
    MySQL数据库的安装(如果安装失败请看链接https://www.cnblogs.com/seeyouone/p/17236660.html)注意:必须用系统管理员身份运行mysql安装程序。安装目录切记不要用中文。......
  • MySQL数据库的卸载(保姆教学)
     步骤一:软件的卸载准备学习网络编程时,TCP/IP协议程序有服务器端和客户端。mysql这个数据库管理软件是使用TCP/IP协议。我们现在要卸载的是mysql的服务器端,它没有界面。......
  • AntDB-M数据库锁分析,不要错过!
    AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持......