17.00 - 17.05 - 例: PTIと非PTIテーブルを使用してINSERT-SELECT - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1208-170K-JPN
Language
日本語 (日本)

例: 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;