17.10 - 行をキューから消費する際のルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)
以下のルールおよび推奨事項は、キュー テーブルから行を消費することに適用されます(キュー テーブルの行を消費する際のルールおよび制限の詳細については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください)。
  • キュー テーブルから行を消費するには、AND CONSUME TOP 1キーワードをSELECT文に指定します。AND CONSUMEキーワードは、リクエストがCONSUMEモード リクエストであることを指定します。TOP 1は、キュー テーブルの一番古い行を検索することを指定します。

    以下の例では、shopping_cartという名前のキュー テーブルから行を消費します。

    SELECT AND CONSUME TOP 1 *
    FROM shopping_cart;
  • INTO句を使用して行からホストまたはローカル変数に値を割り当てるストアド プロシージャおよび組み込みSQLアプリケーションからも、行を消費できます。
  • 行をキュー テーブルから消費することに基づいて実行されるアクションは、その同じキュー テーブルに対するCONSUMEモードのSELECT操作と同じトランザクション内に指定する必要があります。これにより、行の消費とそのキュー テーブルに対して実行されるアクションとが共にコミットされるので、そのキュー テーブルの行またはアクションが失われないことが保証されます。

    アクションを起こさない場合は、SELECT AND CONSUME文をトランザクション内の唯一のリクエストになるように分離する必要があります。<Teradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142>を参照してください。

  • 複数文のリクエストに含めるCONSUMEモードのSELECT文は、1つに限ることをお奨めします。
  • トリガーによって、キュー テーブルから行を消費するストアド プロシージャを呼び出すことができます。