{ INSERT | INS } [ with_isolated_loading ] [ INTO ] table_name
{ [ VALUES ] ( expression [,...] ) |
( column_name [,...] ) VALUES ( expression [,...] ) |
[ ( column_name [,...] ) ]
subquery
[ hash_by ]
[ local_order_by ]
[ logging_errors ] |
JSON { 'JSON_string' | ? } |
DEFAULT VALUES
} [;]
構文要素
- with_isolated_loading
WITH [NO] [CONCURRENT] ISOLATED LOADING
- NOを含めないと、INSERTを同時ロード分離操作として実行できます。
- NOを含めると、INSERTは同時ロード分離操作として実行されません。
- 読みやすくするためにCONCURRENTを含めることができます。
- [ INTO ]
- ANSIに準拠するために必要なキーワードです。INTOを指定しない場合、リクエストはANSI規格に準拠したものではなくなります。
- table_name
- テーブル、またはビューの名前です。
- [ VALUES ]
- ANSIに準拠するために必要なキーワードです。INTOを指定しない場合、リクエストはANSI規格に準拠したものではなくなります。
- この句で使用されるホスト変数については、コロンはオプションです。
column_name |
VALUESキーワード |
指定される。 |
必須。 |
指定されない。 |
オプション。 |
- expression
- column_nameで指定された列の新しい行に挿入される定数、または定数式を指定します。定数式とは、定数だけの入った式です(例えば、3+5、または19000/12)。
- UDT列に挿入する場合、expressionには、必要なコンストラクタを持つ適切なNEW式と、ドット表記を使用して指定したミュテーター メソッドを含めます。詳細は、<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>を参照してください。
- システム値のCURRENT_DATE、DATE、CURRENT_TIME、TIME、およびUSERは、定数式に組み込むことができます。また、DEFAULT関数を使用してデフォルト値を列に挿入することもできます。
- expressionの値としてキーワードのNULLを指定することによって、NULLを挿入することもできます。
- USING修飾子を使用してインポートされたデータ、またはマクロ パラメータとしてインポートされたデータから取得した値は、'定数'として受け入れられます。
- 列名のリストを指定しないと、値の挿入順序は、列の定義の順序(左から右へ)に従います。列をスキップすることを示すには、カンマを使用してください。例: 順序付き入力の挿入を参照してください。
- 値を列にマッピングするときに派生PERIOD列の位置はスキップされます。
- 列名のリストと式のリストを使用する場合、それぞれの値は、column_nameの位置とexpressionの位置を一致させて指定します。2つのリストの項目の数は、同じでなければなりません。
- 式リストの要素は、省略されるとNULLとして扱われます。これは、ANSI SQLでは無効です。
- 派生PERIOD列の値を指定することはできません。
- column_name
- 挿入操作で新しい行の値が挿入される列の名前です。
- 列名は、任意の順序で指定できます。
- column_nameを省略すると、CREATE TABLEまたはCREATE VIEWリクエストで定義されているデフォルト値が使用されます。
- 派生PERIOD列名を指定することはできません。
- 派生PERIOD列の開始列と終了列は独自に更新できます。終了列の値は派生PERIOD列の開始列の値よりも大きい値である必要があります。
- subquery
- 挿入される行は、クエリー指定によってアクセスされる列値で構成されます。
- 列名のリストが省略されている場合、SELECTリクエストは、新しい行を受け取るテーブルにある列数と同じ数の列を問合わせなければなりません。
- 値を代入しない列のために、nullを選択の式リストに指定できます。
- INSERT ... SELECTリクエストに含まれるサブクエリーの一部として、ORDER BY句を指定することはできません。
- INSERT操作に列名のリストが組み込まれている場合、column_nameの位置と、選択のexpressionリスト内での項目の位置とを一致させることにより、値が代入されます。
- hash_by
HASH BY hash_list | RANDOM }
- local_order_by
LOCAL ORDER BY local_order_by_spec [,...]
- logging_errors
LOGGING [ ALL ] ERRORS [ WITH { NO LIMIT | LIMIT OF error_limit } ]
- LOGGING ERRORSオプションを指定しない場合、システムはエラー処理を提供しません。エラーが発生した場合、次のセッション モードの動作が実行されます。
- 現在のセッション モードがANSIである場合、エラーのあるリクエストはアボートし、ロールバックします。
- 現在のセッション モードがTeradataである場合、エラーのあるトランザクションはアボートし、ロールバックします。
- デッドロックなど、場合によってはエラーのあるトランザクションはロールバックします。
- ALL: オプションのキーワードALLはデフォルトです。エラーをログに記録する場合は、すべてのエラーをログに記録する必要があります。
- WITH NO LIMIT: このINSERT … SELECTロード操作のターゲット データ テーブルに関連付けられているエラー テーブルに記録できるエラー数を制限しません。システム定義のエラー制限値である16,000,000個のエラーが記録されるまでエラーが記録されます。
- WITH LIMIT OF error_limit: このINSERT … SELECTロード操作のターゲット データ テーブルに関連付けられているエラー テーブルに記録できるエラーの制限値がerror_limitになります。
- error_limitに指定できる値の範囲は、1~16,000,000です。LIMITオプションの値を指定しない場合、エラー制限値のデフォルト値は10です。
- JSON_string
- データのリテラル文字列をJSON形式で指定します。
- JSON形式の入力を指定します。JSONオプションの使用上のルールを参照してください。
- JSONデータの書式設定の詳細については、<Teradata Vantage™ - JSONデータ型、B035-1150>を参照してください。
- ?
- パラメータ化SQLを指定します。
- パラメータ化SQLの場合、INSERT...JSONはVARCHAR、CLOB、および外部JSONデータ型をサポートします。ただし、操作は2 AMPプロセスです。最適なパフォーマンスを行なうには、JSONリテラルを指定します。
- DEFAULT VALUES
- デフォルト値で構成される行が、table_nameに追加されます。
- 列にDEFAULT句が定義されない場合、NOT NULLとして定義されていない限り、システムはデフォルトをNULLと見なして、エラーが返され、挿入が失敗します。
- INSERTのこのオプションは、埋め込みSQLではサポートされていません。
- hash_list
{ column_name | column_position | column_expression } [,...]
- AMP間のNoPIテーブルにハッシュ行が挿入されます。
- RANDOM
- ランダムに一度に1ブロック、AMP間のNoPIテーブルにハッシュ行が挿入されます。
- local_order_by_spec
{ column_name | column_position | column_expression }
[ ASC | DESC ] [ NULLS { FIRST | LAST } ]
- 順序行がAMPでローカルにテーブルに挿入されます。
- error_limit