例: PTIタイム バケット テーブルを非PTIテーブルにマージ - Teradata Database - Teradata Vantage NewSQL Engine - 時系列テーブルのMERGE SQL文の例

Teradata Vantage™ 時系列テーブルおよび操作

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/sfz1493079039055.ditamap
dita:ditavalPath
ja-JP/sfz1493079039055.ditaval
dita:id
B035-1208
Product Category
Software
Teradata Vantage

以下は、非シーケンス化PTIテーブルmrg_tgt_nsのテーブル定義です。ここでは、2016年10月15日のタイム ゼロ指定であるDATE '2016-10-15'と、1時間のタイムバケット期間であるHOURS(1)が使用されています。

CREATE TABLE mrg_tgt_ns(c1 INT, c2 INT)
PRIMARY TIME INDEX(TIMESTAMP(1), DATE '2016-10-15',
HOURS(1));

以下は、非PTIテーブルmrg_src_rのテーブル定義です。

CREATE TABLE mrg_src_r
(c0 TIMESTAMP(1), c1 INT, c2 INT);

この例では、非PTIソース テーブルmrg_src_rを、非シーケンス化PTIターゲット テーブルmrg_tgt_nsにマージします。

MERGE INTO mrg_tgt_ns AS tgt
USING mrg_src_r AS src
ON src.c0 = tgt.TD_TIMECODE
WHEN MATCHED THEN UPDATE SET c2 = 70
WHEN NOT MATCHED THEN INSERT (src.c0, src.c1, src.c2);

この例では、ターゲットテーブルTD_TIMECODE列にON句の等価条件を使用して、非PTIソース テーブルmrg_src_rを、非シーケンス化PTIターゲット テーブルmrg_tgt_nsにマージします。

MERGE INTO mrg_tgt_ns AS tgt
USING mrg_src_r AS src
ON tgt.TD_TIMECODE = TIMESTAMP '2016-10-16 10:32:12.2'
WHEN MATCHED THEN UPDATE SET c2 = 72
WHEN NOT MATCHED THEN INSERT (TIMESTAMP '2016-10-16 10:32:12.2', src.c1, src.c2);