挿入する行データを直接指定する(値指定の形式)か、または別のテーブルから新しい行データを検索する(選択形式またはINSERT … SELECT形式)ことで、新しい行をテーブルに追加します。
以下の構文では、valued形式およびselected形式の文が説明されています。subqueryは、selected形式のSELECT部分を表わします。
テンポラル テーブルと互換性がある構文については、<Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186>および<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。
詳細については、以下を参照してください。
- スカラー サブクエリー
- MERGE
- Teradata Vantage™ - SQLの日付/時刻関数と式、B035-1211
- Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144のCREATE ERROR TABLE
- Teradata Vantage™ - ANSIテンポラル テーブル サポート、B035-1186
- Teradata Vantage™ - テンポラル テーブル サポート、B035-1182
- Teradata Vantage™ - JSONデータ型、B035-1150
- Teradata Vantage™ - 地理空間データ型、B035-1181
- Teradata Vantage™ - データベースの管理、B035-1093
- Teradata Vantage™ - データベース ユーティリティ、B035-1102
- Teradata® FastLoadリファレンス、B035-2411
- Teradata® MultiLoadリファレンス、B035-2409
- Teradata® Parallel Data Pumpリファレンス、B035-3021
ANSI準拠
INSERTは、ANSI SQL:2011に準拠しており、さらに機能が拡張されています。
略語であるINSは、ANSI SQL:2011規格に対するTeradata拡張機能です。
ANSI SQL:2011では、この文はINSERT INTOとして定義されていますが、Teradataの定義では、INTOはオプションのキーワードになります。
必要な権限
次の権限のルールが、INSERT文に適用されます。
- 参照されるテーブルまたは列セットに対するINSERT権限が必要です。
- ビューを介してテーブルに行を挿入するには、そのビューに対するINSERT権限を持っていなければなりません。さらに、そのビューの直接所有者が、基礎となるビュー、基本テーブル、または列セットに対してINSERT権限を持っていなければなりません。そのビューの直接所有者は、そのビューの存在するデータベースです。
- サブクエリー指定を使用してテーブルに行を挿入する場合には、サブクエリーで参照されるテーブルまたはビューに対するSELECT権限を持っていなければなりません。
- オブジェクトに対するREADアクセス権の必要なWHERE句を伴ったINSERTを実行する場合、アクセスされるそのオブジェクトに対するSELECT権限を持っていなければなりません。
INSERT ... SELECT ... LOGGING ERRORS操作に必要な権限は、LOGGING ERRORSオプションを指定しないINSERT ... SELECT操作に必要な権限と同じです。ただし、INSERT ... SELECT操作のターゲット データ テーブルに関連付けられているエラー テーブルに対するINSERT権限が必要です。