17.10 - ANSIモードのトランザクション - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース入門

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Content Type
ユーザー ガイド
Publication ID
B035-1091-171K-JPN
Language
日本語 (日本)
Last Update
2022-01-13

ANSIトランザクションは、すべて暗黙的にオープンされます。ANSIトランザクションは、次のイベントのいずれかによってオープンされます。

  • セッションで最初に実行されるSQL要求
  • 前のトランザクションのクローズ後に最初に実行される要求

また、アプリケーションでCOMMIT、ROLLBACK、またはABORT要求が実行されると、トランザクションはクローズされます。

トランザクションにDDL文が含まれている場合(ここでは、DATABASE文やSET SESSION文などがDDL文と見なされる)、その文はトランザクション(トランザクションをクローズする文以外のトランザクション)の最後の要求でなければなりません。

ANSIモードで実行されているセッションでは、BEGIN TRANSACTION文、END TRANSACTION文、および2フェーズ コミット プロトコルを使用することはできません。アプリケーションが、ANSIモードのときにこれらの文を実行すると、データベース ソフトウェアによってエラーが生成されます。

ANSIモードでは、現在の要求が次の条件に一致する場合に、トランザクション全体がロールバックされます。

  • デッドロック状態になっている場合
  • DDL文を実行しアボートした場合
  • ROLLBACKまたはABORT文を明示的に実行した場合

ABORT文とROLLBACK文(いずれも条件付きの形式を含む)は、ANSIモードで使用することができます。単文要求または複文要求でエラーが発生した場合は、エラーが発生した要求のみがロールバックされ、特別な場合を除いてトランザクションはクローズされません。

また、ANSIモードでは、アプリケーションによって開始される非同期のアボートによってもトランザクション全体がロールバックされます。