COMMIT

在当前会话中提交未完成事务。

另请参阅:

BEGINROLLBACKSHOW TRANSACTIONSDESCRIBE TRANSACTION

语法

COMMIT [ WORK ]
Copy

参数

WORK

可选关键字,提供与其他数据库系统的兼容性。

使用说明

  • 如果执行一行中的两个 COMMIT 语句(在同一 :ref:` 作用域 <label-scoped_transactions>` 内),则忽略第二个语句。例如,在下面的代码中,第二个 COMMIT 不起作用;没有要提交的未结事务。

    BEGIN;
    INSERT INTO table1 ...;
    COMMIT;
    COMMIT;  -- Ignored!
    
    Copy

    如果使用 自治作用域事务和存储过程,则规则可能会更加复杂。

示例

开始一项事务,将一些值插入表中,然后通过提交事务来完成事务:

SELECT COUNT(*) FROM A1;

+----------+
| COUNT(*) |
|----------+
|        0 |
+----------+

BEGIN NAME T3;

SELECT CURRENT_TRANSACTION();

+-----------------------+
| CURRENT_TRANSACTION() |
|-----------------------+
| 1432071497832         |
+-----------------------+

INSERT INTO A1 VALUES (1), (2);

+-------------------------+
| number of rows inserted |
|-------------------------+
|                       2 |
+-------------------------+

COMMIT;

SELECT CURRENT_TRANSACTION();

+-----------------------+
| CURRENT_TRANSACTION() |
|-----------------------+
| [NULL]                |
+-----------------------+

SELECT LAST_TRANSACTION();

+--------------------+
| LAST_TRANSACTION() |
|--------------------+
| 1432071497832      |
+--------------------+

SELECT COUNT(*) FROM A1;

+----------+
| COUNT(*) |
|----------+
|        2 |
+----------+
Copy
语言: 中文