17.05 - SET SESSION TRANSACTION ISOLATION LEVELの例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

例: デフォルトのセッション分離レベルをREAD UNCOMMITTEDに設定

以下のリクエストはどちらも同じことで、現在のセッションの分離レベルをREAD UNCOMMITTEDに設定します。

     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL RU;
     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ
     UNCOMMITTED;

例: デフォルトのセッション分離レベルをSERIALIZABLEに戻す設定

以下のリクエストはどちらも同じことで、現在のセッションの分離レベルをSERIALIZABLEに戻します。

     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SR;
     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL
     SERIALIZABLE;

例: 失敗の条件

Teradataセッション モードでこの文には、構文および意味解釈ルーチン エラーの両方が失敗応答を返します。

次のリクエストは、SUが有効な分離レベルではないので、失敗応答を返します。

     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SU;
     *** Failure 3706 Syntax error: expecting isolation level.

次のTeradataセッション モード トランザクションは、SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELはDDL文であるのに、トランザクションの最後のリクエストではなく、明示的なトランザクションではDDL文の後に書ける有効な文はEND TRANSACTION、ABORT/ROLLBACK、またはNULL文だけであるので、失敗応答を返します。

     SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SR;
     SELECT * 
     FROM table_1;
     *** Failure 3932 Only an ET or null statement is legal after a DDL
     Statement.

ANSIセッション モードでは、これらのリクエストは、失敗ではなくエラーを返します。それからシステムによりエラーの発生したリクエストはロールバックされます。

このトランザクションは以下の3種類の方法で改訂できます。

  • 暗黙的トランザクションとしてTeradataセッション モードで単一文のリクエストとしてSET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを実行します。
  • SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを発行した直後に、以下のいずれかを使用してこのリクエストを含む明示的Teradataセッション モード トランザクションをコミットまたはロールバックします。
  • END TRANSACTION文。
  • ABORTまたはROLLBACK文。
  • SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVELリクエストを発行した直後に、以下のいずれかを使用してこのリクエストを含むANSIセッション モード トランザクションをコミットまたはロールバックします。
  • COMMIT文。
  • ABORTまたはROLLBACK文。