---
title: "提交事务 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 提交事务 提交一个事务会让事务的修改持久化生效，清除保存点并释放事务所持有的所有锁。 提交事务 OceanBase 数据库提交事务可以使用显式提交或者隐式提交。显式的提交事务，需要使用 COMMIT 语句或者使用提交按钮（在图形化客户端工具中）结束事务；隐式提交时不需要主动提交，当变量 autocommit 值为 1…
---
切换语言

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

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

# 提交事务

更新时间：2026-04-07 18:58:13

[编辑](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/400.submit-transaction-of-mysql-mode.md)  

提交一个事务会让事务的修改持久化生效，清除保存点并释放事务所持有的所有锁。

## 提交事务

OceanBase 数据库提交事务可以使用显式提交或者隐式提交。显式的提交事务，需要使用 `COMMIT` 语句或者使用提交按钮（在图形化客户端工具中）结束事务；隐式提交时不需要主动提交，当变量 `autocommit` 值为 1 时，此时每条语句执行结束后，OceanBase 数据库将会自动的把这条语句所在的事务提交，一条语句就是一个事务。

#### 说明

OceanBase 数据库会在 DDL 语句前和后隐式的发起一个 `COMMIT` 语句，也会提交事务。

- 如果使用 `BEGIN` 开启一个事务，执行 DML 语句后需要使用 `COMMIT` 提交事务。

     - 在您提交事务之前，您的修改只对当前会话可见，对其他数据库会话是不可见的；您的修改没有持久化，所以不是最终的结果，可以用 `ROLLBACK` 语句回滚这些修改。
     - 在您提交事务之后，您的修改对所有数据库会话可见。您的修改结果持久化成功，不可以用 `ROLLBACK` 语句回滚这些修改。  

  #### 说明

  如果事务隔离级别设置了可重复读，则已经开启事务的会话无法查询到新提交的数据。事务隔离级别的更多介绍请参见 [事务隔离级别](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004479415)。
 - 如果隐式地使用事务（开启自动提交事务，即 `autocommit=1`），则一条 SQL 就是一个事务，不再需要提交事务。SQL 执行后，您的修改即持久化成功，不可以使用 `ROLLBACK` 语句回滚这些修改。

### 显式提交事务

通过 `BEGIN` 开始一个事务，然后使用 `INSERT` 语句在表 `ordr` 中插入数据，最后通过 `COMMIT` 语句显示提交事务。

```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 |
+----+------+-------+---------------------+
3 rows in set

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

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

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

// 执行成功后，退出会话再重新连接，发现表数据已正确插入并保存成功。

obclient [test]> exit;

$obclient -h192.168.0.0 -ut***@obbmsql#obdemo -P2883 -p******  test
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487662
Server version: OceanBase 4.0.0.0 (r100000252022102910-df01cef074936b9c9f177697500fad1dc304056f) (Built Oct 29 2022 10:27:50)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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 |
+----+------+-------+---------------------+
4 rows in set

```

### 隐式提交事务

通过配置变量 `autocommit=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 |
+----+------+-------+---------------------+
4 rows in set

obclient [test]> SET autocommit=1;

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

```

执行成功后，退出会话再重新连接，发现表数据已正确插入并保存成功。

```sql
obclient [test]> exit;

$obclient -h192.168.0.0 -utpcc@obbmsql#obdemo -P2883 -p******  test
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487662
Server version: OceanBase 4.0.0.0 (r100000252022102910-df01cef074936b9c9f177697500fad1dc304056f) (Built Oct 29 2022 10:27:50)

Copyright (c) 2000, 2018, OceanBase Corporation Ab and others.

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

```

## 相关文档

- [开启事务](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004476109)

 上一篇 下一篇 ![有帮助](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) 咨询热线
