トランザクションのコミット
トランザクションをコミットすると、そのトランザクションの変更を確定して、セーブポイントを消去しロックを解除します。
トランザクションを明示的にコミットするには、COMMIT文または(SQL Developer環境で)「変更のコミット」アイコンを使用します。
ノート: Oracle Databaseは、データ定義言語(DDL)文の前後に暗黙的なCOMMIT文を発行します。DDL文の詳細は、「データ定義言語(DDL)文」を参照してください。
コミット前のトランザクションは次のようになります。
-
変更は表示できますが、他のデータベース・インスタンスのユーザーには表示されません。
-
変更は終了していません。ROLLBACK文を使用して取り消すことができます。
コミット後のトランザクションは、次のようになります。
-
変更は他のユーザーにも確認でき、トランザクションのコミット後に実行した文も確認できます。
-
変更は終了しています。ROLLBACK文を使用しても元に戻すことができません。
例3-7では、REGIONS表に1行追加し(単純なトランザクション)、結果を確認してから、トランザクションをコミットします。
例3-7 トランザクションのコミット
トランザクション前:
SELECT * FROM REGIONS
ORDER BY REGION_ID;
結果:
REGION_ID REGION_NAME
---------- -------------------------
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
4 rows selected.
トランザクション(表に行を追加)を実行します。
INSERT INTO regions (region_id, region_name) VALUES (5, 'Africa');
結果:
1 row created.
追加した行を確認します。
SELECT * FROM REGIONS
ORDER BY REGION_ID;
結果:
REGION_ID REGION_NAME
---------- -------------------------
1 Europe
2 Americas
3 Asia
4 Middle East and Africa
5 Africa
5 rows selected.
トランザクションをコミットします。
COMMIT;
結果:
Commit complete.
関連項目: COMMIT文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。