例: PTIと非PTIテーブルを使用するINSERT SELECT - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - 時系列テーブルと操作の概要

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/zzg1600277315070.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1208
Product Category
Software
Teradata Vantage

例: INSERT SELECT文

次の文は、非PTIテーブルnormal_tableからデータを選択し、行をPTIテーブルocean_buoy_1に挿入します。
INSERT INTO ocean_buoy_1 SELECT * FROM normal_table;
INSERT INTO ocean_buoy_1(TD_TIMECODE, buoyid, temperature) SELECT * FROM normal_table;
INSERT INTO ocean_buoy_1(TD_TIMECODE, buoyid, temperature)
       SELECT timecode, buoyid, temperature FROM normal_table;
次の文は、非PTIテーブルnormal_table2からデータを選択し、行をPTIテーブルocean_buoyに挿入します。
INSERT INTO ocean_buoy SELECT my_timecode, buoyid, temperature FROM normal_table2;
INSERT INTO ocean_buoy (TD_TIMECODE, buoyid, temperature) SELECT my_timecode, buoyid, temperature FROM normal_table2;
以下は、PTIテーブルocean_buoyからPTIテーブルocean_buoy_1へのINSERT SELECTです。
INSERT INTO ocean_buoy_1 SELECT * FROM ocean_buoy;
以下は、指定したタイム バケット期間を持つPTIテーブルocean_buoyから、特定のタイム バケット期間を持たないPTIテーブルocean_buoy_2へのINSERT SELECTです。
INSERT INTO ocean_buoy_2 SELECT * FROM ocean_buoy;
この文は、PTIテーブルocean_buoyから選択し、TD_TIMECODE、buoyid、temperatureデータをPTIテーブルocean_buoy_1に挿入します。
INSERT INTO ocean_buoy_1(TD_TIMECODE, buoyid, temperature) SELECT * FROM ocean_buoy;

例: 無効なINSERT SELECT文

INSERT文でTD_TIMEBUCKET列を指定することはできません。この文は次のエラーを返します。
INSERT INTO ocean_buoy_1 (TD_TIMEBUCKET, TD_TIMECODE, buoyid, temperature) SELECT * FROM ocean_buoy;
SELECT文のサブクエリーでTD_TIMEBUCKET列を指定することはできません。この文は次のエラーを返します。
INSERT INTO ocean_buoy_1
SELECT TD_TIMEBUCKET, TD_TIMECODE, buoyid, temperature FROM ocean_buoy;
別の列の値をTD_TIMEBUCKET列に挿入することはできません。次の文では、テーブルnormal_table2のmy_timebucket列から、テーブルocean_buoyのTD_TIMEBUCKET列に値を挿入しようとすると、エラーが返されます。
INSERT INTO ocean_buoy SELECT * FROM normal_table2;