INSERT ステートメント¶
INSERT ステートメントは、ビューに 1 つまたは複数のタプルを挿入し、基盤となるデータソースを更新します。
INSERT INTO <view identifier> ( <field name> [, <field name> ]* )
VALUES ( <value> [, <value> ]* )
[ RETURNING <field name> [ , <field name> ]* ]
[ CONTEXT ( <context information> [, <context information> ]* ) ]
[ TRACE ]
INSERT INTO <view identifier>
VALUES ( <value> [, <value> ]* )
[ RETURNING <field name> [, <field name> ]* ]
[ CONTEXT ( <context information> [, <context information> ]* ) ]
[ TRACE ]
INSERT INTO <view identifier> [ ( <field name> [, <field name> ]* ) ]
[ RETURNING <field name> [, <field name>]* ]
VALUES ( <value> [, <value> ]* ) [, ( <value> [, <value> ]* ) ]*
[ TRACE ]
INSERT INTO <view identifier>
SET <field name> = <value> [, <field name> = <value> ]*
[ RETURNING <field name> [, <field name>]* ]
[ CONTEXT ( <context information> [, <context information> ]* ) ]
[ TRACE ]
INSERT INTO { <identifier of a base view of a remote table> | <materialized table identifier> |
<temporary table identifier> }
{ ON DUPLICATE KEY UPDATE |
ON DUPLICATE KEY ( <field name> [, <field name>]* ) UPDATE }
[ OPTIONS ( <option information> [ , <option information> ]* ) ]
<select query>
[ CONTEXT ( <context information> [, <context information> ]* ) ]
[ TRACE ]
<field name> ::=
<identifier>[.<identifier>]
<value> ::=
NULL
| <number>
| <boolean>
| <literal>
| <function>
<view identifier> ::= (「 VQL ステートメントの基本エレメント 」を参照)
<identifier of a base view of a remote table> ::= CREATE_REMOTE_TABLE プロシージャまたは Create Remote Table フォームで作成された基本ビュー。
<materialized table identifier> ::= (「 Materialized Tables 」を参照)
<temporary table identifier> ::= (「 Temporary Tables 」を参照)
<option information> := 挿入を設定するためのオプションのパラメータ。使用できるオプションの詳細については、「 CREATE REMOTE TABLE コマンド 」を参照してください。
INSERT INTO view <SELECT QUERY>
このコマンドは、以下の手順を実行します。
VDP サーバーで選択クエリを実行します。
前の手順で実行したクエリで取得した行をビューに挿入または更新するか、あるいはその両方を行います。
このコマンドを実行するには、以下の権限が必要です。
ビューに対する
Insert
、またはビューが置かれているデータベースに対するConnect
およびWrite
。選択クエリで参照されるビューに対する
Execute
。
例 :
ビュー internet_inc への行の追加
INSERT INTO internet_inc (iinc_id, summary, taxid, specific_field1, specific_field2)
VALUES (6, 'Error in ADSL Router', 'B78596015', '5', '6')
行は、ソースデータベース内で internet_inc
ビューに関連付けられたテーブルに追加されます。
ビュー internet_inc へ行を追加するための代替構文
INSERT INTO internet_inc
SET
iinc_id = 6
, summary = 'Error in ADSL router'
, taxid = 'B78596015'
, specific_field1 = '5'
, specific_field2 = '6'
1 つのビューへの複数行の追加
INSERT INTO employee (last_name, first_name, title) VALUES
('Callahan', 'Laura', 'IT Staff')
, ('Edwards', 'Nancy', 'Sales Manager')
, ('King', 'Robert', 'IT Staff');
選択クエリを使用した挿入
INSERT INTO all_sales
SELECT * FROM online_sales
WHERE year = getyear(CURRENT_DATE());