17.10 - INSERT/INSERT ... SELECT - 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-1146-171K-JPN
Language
日本語 (日本)

挿入する行データを直接指定する(値指定の形式)か、または別のテーブルから新しい行データを検索する(選択形式または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権限が必要です。