COMMIT¶
現在のセッションで開いているトランザクションをコミットします。
- こちらもご参照ください。
構文¶
COMMIT [ WORK ]
パラメーター¶
WORK
他のデータベースシステムとの互換性を提供するオプションのキーワード。
使用上の注意¶
2つの COMMIT ステートメントが連続して実行された場合(同じ スコープ 内)、2番目のステートメントは無視されます。たとえば、次のコードでは、2番目の 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 |
+----------+