---
title: github-fill
description: 回滚事务到某个保存点 标记保存点后，可以通过 ROLLBACK TO SAVEPOINT 语句回滚到指定的事务保存点。 前提条件 请确认已标记保存点，具体操作请参见 标记保存点 。 回滚事务到保存点 可以使用以下语句将事务回滚到某一个保存点。 ROLLBACK TO SAVEPOINT pointname; 其中， …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 回滚事务到某个保存点

更新时间：2026-01-24 16:56:50

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/300.develop/100.application-development-of-mysql-mode/600.transaction-in-develop-of-mysql-mode/300.transaction-savepoints-of-mysql-mode/200.rollback-to-a-savepoint-of-mysql-mode.md)  

标记保存点后，可以通过 `ROLLBACK TO SAVEPOINT` 语句回滚到指定的事务保存点。

## 前提条件

请确认已标记保存点，具体操作请参见 [标记保存点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476570)。

## 回滚事务到保存点

可以使用以下语句将事务回滚到某一个保存点。

```sql
ROLLBACK TO SAVEPOINT pointname;

```

其中，`pointname` 表示事务保存点的名称。

以下示例展示了一个事务中包含多个 DML 语句和多个保存点，然后回滚到其中一个保存点，执行后仅丢弃了保存点后面的那部分修改。

1. 查看表当前记录。

   ```sql
   obclient [test]> SELECT * FROM ordr;
   +----+------+-------+---------------------+
   | id | name | value | gmt_create          |
   +----+------+-------+---------------------+
   |  1 | CN   | 10001 | 2022-10-19 14:51:12 |
   |  2 | US   | 10002 | 2022-10-19 14:51:12 |
   |  3 | EN   | 10003 | 2022-10-19 14:51:12 |
   |  4 | JP   |  NULL | 2022-10-19 14:51:44 |
   |  5 | CN   |  NULL | 2022-10-19 14:53:56 |
   +----+------+-------+---------------------+
   5 rows in set

   ```
 2. 开启一个事务，设置多个保存点信息。

   ```sql
   obclient [test]> SET SESSION autocommit=0;
   Query OK, 0 rows affected

   obclient [test]> BEGIN;
   Query OK, 0 rows affected

   obclient [test]> INSERT INTO ordr(id, name) VALUES(6,'FR');
   Query OK, 1 row affected

   obclient [test]> SAVEPOINT fr;
   Query OK, 0 rows affected

   obclient [test]> INSERT INTO ordr(id, name) VALUES(7,'RU');
   Query OK, 1 row affected

   obclient [test]>  SAVEPOINT ru;
   Query OK, 0 rows affected

   obclient [test]> INSERT INTO ordr(id, name) VALUES(8,'CA');
   Query OK, 1 row affected

   obclient [test]> SAVEPOINT ca;
   Query OK, 0 rows affected

   ```
 3. 当前会话能看到事务未提交的所有修改。

   ```sql
   obclient [test]> SELECT * FROM ordr;
   +----+------+-------+---------------------+
   | id | name | value | gmt_create          |
   +----+------+-------+---------------------+
   |  1 | CN   | 10001 | 2022-10-19 14:51:12 |
   |  2 | US   | 10002 | 2022-10-19 14:51:12 |
   |  3 | EN   |  1003 | 2022-10-19 14:51:12 |
   |  4 | JP   |  NULL | 2022-10-19 14:51:44 |
   |  5 | CN   |  NULL | 2022-10-19 14:53:56 |
   |  6 | FR   |  NULL | 2022-10-19 15:01:39 |
   |  7 | RU   |  NULL | 2022-10-19 15:01:50 |
   |  8 | CA   |  NULL | 2022-10-19 15:02:15 |
   +----+------+-------+---------------------+
   8 rows in set

   ```
 4. 回滚事务到其中一个保存点 `ru`。

   ```sql
   obclient [test]> ROLLBACK TO SAVEPOINT ru;
   Query OK, 0 rows affected

   obclient [test]> SELECT * FROM ordr;
   +----+------+-------+---------------------+
   | id | name | value | gmt_create          |
   +----+------+-------+---------------------+
   |  1 | CN   | 10001 | 2022-10-19 14:51:12 |
   |  2 | US   | 10002 | 2022-10-19 14:51:12 |
   |  3 | EN   |  1003 | 2022-10-19 14:51:12 |
   |  4 | JP   |  NULL | 2022-10-19 14:51:44 |
   |  5 | CN   |  NULL | 2022-10-19 14:53:56 |
   |  6 | FR   |  NULL | 2022-10-19 15:01:39 |
   |  7 | RU   |  NULL | 2022-10-19 15:01:50 |
   +----+------+-------+---------------------+
   7 rows in set

   ```

   根据查询结果可知，由于 `(8,'CA')` 是在保存点 `ru` 之后插入的数据，回滚后，该修改被丢弃。
 5. 提交事务，并确认表的最新修改中包含了保存点 `ru` 之前的修改。

   ```sql
   obclient [test]> COMMIT;
   Query OK, 0 rows affected

   ```

更多回滚事务相的示例及说明，请参见 [回滚事务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476108)

## 相关文档

- [标记保存点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476570)
 - [释放保存点](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476569)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
