OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBase Cloud

すべてのバージョン

    OceanBase ロゴ

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについてトラストセンター法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBase Cloud
    3. master
    アイコンOceanBase Cloud
    master
    データベース
    • OceanBaseデータベース
    • OceanBase Cloud
    • master

    トランザクションのロールバック

    最終更新日:2026-06-03 10:03:39  更新
    シェア
    このページの内容
    トランザクション全体のロールバック
    トランザクションを特定のセーブポイントまでロールバック
    関連ドキュメント

    折りたたみ

    シェア

    本記事では、トランザクションのロールバック操作について説明します。

    トランザクションをロールバックとは、トランザクションによる変更をすべて取り消すことです。未コミットのトランザクション全体をロールバックすることも、トランザクション内の任意のセーブポイントまでロールバックすることもできます。

    トランザクション全体のロールバック

    トランザクションがコミットされていない場合は、ROLLBACK ステートメントを使用してトランザクション全体をロールバックできます。

    トランザクション全体をロールバックした後:

    • すべての変更は破棄されます。

    • すべてのセーブポイントはクリアされます。

    • トランザクションが保持しているすべてのロックが解除されます。

    トランザクション全体をロールバックする構文は以下のとおりです:

    ROLLBACK;
    

    以下の例では、ROLLBACK を使用して、現在のトランザクションのすべての変更をロールバックします。

    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
    
    obclient [test]> BEGIN;
    Query OK, 0 rows affected
    
    obclient [test]> INSERT INTO ordr(id, name, value) VALUES(6,'JP',10007);
    Query OK, 1 row affected
    
    obclient [test]> INSERT INTO ordr(id, name, value) VALUES(8,'FR',10008),(9,'RU',10009);
    Query OK, 2 rows affected
    Records: 2  Duplicates: 0  Warnings: 0
    
    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   |  1003 | 2022-10-19 14:51:12 |
    |  4 | JP   |  NULL | 2022-10-19 14:51:44 |
    |  5 | CN   |  NULL | 2022-10-19 14:53:56 |
    |  6 | JP   | 10007 | 2022-10-19 14:58:24 |
    |  8 | FR   | 10008 | 2022-10-19 14:58:35 |
    |  9 | RU   | 10009 | 2022-10-19 14:58:35 |
    +----+------+-------+---------------------+
    8 rows in set
    
    obclient [test]> ROLLBACK;
    Query OK, 0 rows affected
    
    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   |  1003 | 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
    

    この例では、BEGIN で明示的にトランザクションを開始します。COMMIT で明示的にトランザクションをコミットするまで、すべての変更は現在のセッションでのみ可視化され、変更は永続化されません。ROLLBACK ステートメントを使用してロールバックし、変更を元に戻すことができます。

    トランザクションを特定のセーブポイントまでロールバック

    トランザクションにセーブポイントが設定されている場合、ROLLBACK TO SAVEPOINT ステートメントを使用して、特定のセーブポイントまでロールバックできます。トランザクションのセーブポイントに関する説明は、トランザクションのセーブポイントを参照してください。

    特定のセーブポイントまでロールバックした後:

    • トランザクションは終了しません。

    • セーブポイント以前の変更は保持され、セーブポイント以降の変更は破棄されます。

    • 指定したセーブポイント以降のセーブポイント(指定したセーブポイント自身は除く)はクリアされます。

    • セーブポイント以降にトランザクションが保持していたすべてのロックが解除されます。

    特定のセーブポイントまでロールバックする構文は以下のとおりです:

    ROLLBACK TO SAVEPOINT pointname;
    

    ここで、pointname はトランザクションのセーブポイント名を表します。

    トランザクションを特定の復元ポイントまでロールバックする詳細な例と説明については、トランザクションを特定のセーブポイントまでロールバックするを参照してください。

    関連ドキュメント

    • トランザクションのコミット

    • トランザクションのセーブポイント

    前のトピック

    トランザクションのコミット
    最後

    次のトピック

    テーブルグループの作成
    次
    このページの内容
    トランザクション全体のロールバック
    トランザクションを特定のセーブポイントまでロールバック
    関連ドキュメント