COMMIT¶
在当前会话中提交未完成事务。
语法¶
COMMIT [ WORK ]
参数¶
WORK
可选关键字,提供与其他数据库系统的兼容性。
使用说明¶
如果执行一行中的两个 COMMIT 语句(在同一 :ref:` 作用域 <label-scoped_transactions>` 内),则忽略第二个语句。例如,在下面的代码中,第二个 COMMIT 不起作用;没有要提交的未结事务。
BEGIN; INSERT INTO table1 ...; COMMIT; COMMIT; -- Ignored!
如果使用 自治作用域事务和存储过程,则规则可能会更加复杂。
示例¶
开始一项事务,将一些值插入表中,然后通过提交事务来完成事务:
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 |
+----------+