INSERT...SELECT

INSERT...SELECT文は、問合せの結果を表に挿入します。

必要な権限

オブジェクトの所有者に必要な権限はありません。

別のユーザーのオブジェクトの場合、INSERTSELECTが必要です。

TimesTen Scaleoutでの使用

この文は、TimesTen Scaleoutでサポートされています。

SQL構文

INSERT INTO [Owner.]TableName [(ColumnName [,...])] InsertQuery

パラメータ

パラメータ 説明

[Owner.]TableName

データを追加する表。

ColumnName

値を指定する列。表の列を列名リストで省略した場合は、INSERT...SELECT文によって、省略された列にデフォルト値が割り当てられます。省略した列に表定義でNOT NULLが指定されている場合、その列にデフォルト値が定義されていなければ、INSERT...SELECT文は失敗します。CREATE TABLE文で指定された順序と同じ順序で表のすべての列に対して値を指定する場合は、列名リストを省略できます。指定する値が少なすぎる場合は、その他の列にデフォルト値が割り当てられます。

InsertQuery

サポートされている任意のSELECT問合せ。「SELECT」を参照してください。SELECT動詞の後に文レベルのオプティマイザ・ヒントを指定できます。文レベルのオプティマイザ・ヒントの詳細は、「文レベルのオプティマイザ・ヒント」を参照してください。

説明

  • 結果セットの列の型は、ターゲット表の列の型と互換性がある必要があります。

  • 値を挿入するときに、順序CURRVALまたはNEXTVALを指定できます。詳細は、「TimesTen ClassicでのCURRVALおよびNEXTVALの使用方法」を参照してください。

  • InsertQueryORDER BY句を使用できます。ターゲット表に結果セットを挿入する際に、ORDER BY句を使用してソート順序が変更されますが、順序は保証されません。

  • InsertQueryにエラーがあると、INSERT操作は失敗します。

  • RETURNING句はINSERT...SELECT文では使用できません。

  • UNIONUNION ALLMINUSまたはINTERSECTSELECT副問合せは、同じ数の投影式が必要です。

20日以内に配送される部品を示すpurchasing.parts表に新しい行が追加されます。

INSERT INTO purchasing.parts
SELECT partnumber, deliverydays
FROM purchasing.supplyprice
WHERE deliverydays < 20;