例: PTIタイム バケット テーブルを非PTIテーブルにマージ - 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

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