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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

例: デフォルトのセッション分離レベルを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文。