INSERTリクエスト内のSUBQUERY - Teradata Database - Teradata Vantage NewSQL Engine - INSERTリクエストでのサブクエリーの使用上の注意

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

サブクエリー (INSERT ... SELECTリクエストと呼ばれる)を使用するINSERT文は、次の点で単純なINSERTとは異なります。多くの行を単一の操作で挿入できるということと、行の値を複数のテーブルから持ってくることができることです。

問合わせ指定は、常にFROM table_name句を伴っていなければなりません。

さらに、次の条件が存在している場合、サブクエリーを含むINSERTリクエストで列名のリストを定義する必要があります。
  • 問合わせ指定の列の数が挿入先のテーブルに含まれる列の数と異なる。
  • 問合わせ指定の列の順序が挿入先のテーブルに定義された列の順序と異なる。

SUBQUERYのあるINSERT ... SELECTの使用

SELECTがサブクエリーである場合、INSERT ... SELECTリクエストのSELECTコンポーネントにORDER BY句を指定することはできません。

INSERTリクエストでのスカラーSUBQUERYの使用

INSERTおよびINSERT ... SELECTリクエストにスカラー サブクエリーを指定する場合には、次のルールと制限が適用されます。
  • スカラー サブクエリーは、パラメータ化された値として、単純なINSERTリクエストの値リストに指定することができます。ただし、Teradata Databaseでは、そのスカラー サブクエリーを常に非相関スカラー サブクエリーとして解釈します。例: スカラー サブクエリーを使用したINSERTを参照してください。
  • 単純なINSERTリクエストで識別列に割当てられた値リストの値として、非相関スカラー サブクエリーを指定することはできません。
  • スカラー サブクエリーを使用したINSERTリクエストを、トリガー本体に指定することができます。

    ただし、スカラー サブクエリーを使用した単純なINSERTリクエストを、行トリガー本体の値リストに指定することはできません。

  • INSERT ... SELECTリクエストのSELECT構成要素に、スカラー サブクエリーを指定できます。
  • Teradata Databaseでは、行トリガー内でINSERT ... SELECTのSELECT構成要素に指定した非相関スカラー サブクエリーを、パラメータ化された値としてではなく、単一列の単一行スプールとして処理します。