16.20 - 例: PTIタイム バケット テーブルを非PTIテーブルにマージ - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1208-162K-JPN

以下は、非シーケンス化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);