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データベース

SQL - V4.4.2

    OceanBase ロゴ

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

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

    © OceanBase 2026. All rights reserved

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

    自律トランザクションの制御

    最終更新日:2026-06-15 02:31:32  更新
    シェア
    このページの内容
    自律ルーチンへの入りと出り
    自律トランザクションのコミットとロールバック
    Savepoint
    自律トランザクション内のエラーの回避

    折りたたみ

    シェア

    自律ルーチンは、最初のSQLステートメントからトランザクションを開始します。あるトランザクションが終了すると、次のSQLステートメントが別のトランザクションを開始します。

    機能の適用範囲

    この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみ提供しています。

    直近のコミットまたはロールバック以降に実行されたすべてのSQLステートメントは、現在のトランザクションを構成します。自律トランザクションを制御するには、以下のステートメントを使用してください。これらのステートメントは現在の(アクティブな)トランザクションでのみ適用されます。

    • COMMIT

    • ROLLBACK [TO savepoint_name]

    • SAVEPOINT savepoint_name

    自律ルーチンへの入りと出り

    自律ルーチンの実行可能な部分に入ると、メイントランザクションは一時停止します。ルーチンを終了すると、メイントランザクションは再開します。

    アクティブな自律トランザクションを終了しようとしてコミットまたはロールバックを行わない場合、データベースは例外をスローします。その例外を処理しない場合、または他の未処理の例外によりトランザクションが終了した場合、そのトランザクションはロールバックされます。

    ルーチンを正常に終了するには、すべての自律トランザクションを明示的にコミットまたはロールバックする必要があります。ルーチン(またはルーチンが呼び出す任意のルーチン)に未処理のトランザクションがある場合、PLは例外をスローし、未処理のトランザクションはロールバックされます。

    自律トランザクションのコミットとロールバック

    COMMIT と ROLLBACK はアクティブな自律トランザクションを終了できますが、自律ルーチンからは出られません。あるトランザクションが終了すると、次のSQLステートメントが別のトランザクションを開始します。一つの自律ルーチンが複数の COMMIT ステートメントを発行した場合、複数の自律トランザクションを含むことができます。

    Savepoint

    Savepointは、それを定義したトランザクション内でのみ有効です。メイントランザクションで定義されたSavepointは、その自律トランザクション内で定義されたSavepointとは無関係です。実際、メイントランザクションと自律トランザクションは同じSavepoint名を使用できます。

    現在のトランザクションでマークされたSavepointまでしかロールバックできません。自律トランザクション内では、メイントランザクションでマークされたSavepointまでロールバックすることはできません。そのため、メイントランザクションを復元するには、自律ルーチンを終了する必要があります。

    メイントランザクション内にいるとき、自律トランザクションを開始する前にマークされたSavepointまでロールバックしても、その自律トランザクションはロールバックされません。自律トランザクションはメイントランザクションから完全に独立していることを覚えておいてください。

    自律トランザクション内のエラーの回避

    一般的なエラーを避けるために、以下の点を覚えておいてください:

    • 自律トランザクションがメイントランザクションが所有するリソースにアクセスしようとすると、デッドロックが発生します。データベースは自律トランザクション内で例外をスローし、その例外を処理しない場合はロールバックします。

    • アクティブな自律トランザクションを終了しようとしてコミットまたはロールバックを行わない場合、データベースは例外をスローします。例外を処理しない場合、トランザクションはロールバックされます。

    • 自律トランザクションを開始するときは、自律ルーチン内で PIPE ROW ステートメントを実行できません。PIPE ROW ステートメントを実行する前には、自律トランザクションを閉じる必要があります。これは通常、PIPE ROW ステートメントを実行する前に自律トランザクションをコミットまたはロールバックすることで実現されます。

    前のトピック

    自律トランザクションの概要
    最後

    次のトピック

    自律トリガー
    次
    このページの内容
    自律ルーチンへの入りと出り
    自律トランザクションのコミットとロールバック
    Savepoint
    自律トランザクション内のエラーの回避