例: ソース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テーブルsrc_sを、ターゲットのシーケンス化PTIテーブルtgt_sにマージします。

MERGE INTO
tgt_s AS tgt
USING src_s AS src
ON tgt.TD_TIMECODE = src.TD_TIMECODE AND
   tgt.TD_SEQNO = src.TD_SEQNO AND
   tgt.c1 = src.c1
WHEN MATCHED THEN UPDATE SET c2 = 70
WHEN NOT MATCHED THEN INSERT
(src.TD_TIMECODE, src.TD_SEQNO, src.c1, src.c2);

この例では、サブクエリーを使用して、ソースのシーケンス化PTIテーブルsrc_sを、ターゲットのシーケンス化PTIテーブルtgt_sにマージします。

MERGE INTO
tgt_s AS tgt
USING (SELECT TD_TIMECODE, TD_SEQNO, c1, c2 FROM src_s) AS src
ON tgt.TD_TIMECODE = src.TD_TIMECODE AND
   tgt.TD_SEQNO = src.TD_SEQNO AND
   tgt.c1 = src.c1
WHEN MATCHED
THEN UPDATE SET c2 = 70
WHEN NOT MATCHED THEN
INSERT (src.TD_TIMECODE,src.TD_SEQNO, src.c1, src.c2);

この例では、WHEN NOT MATCHED条件にINSERT VALUESを使用して、ソースのシーケンス化PTIテーブルsrc_sを、ターゲットのシーケンス化PTIテーブルtgt_sにマージします。

MERGE INTO
tgt_s AS tgt
USING src_s AS src
ON tgt.TD_TIMECODE = src.TD_TIMECODE AND
   tgt.TD_SEQNO = src.TD_SEQNO AND
   tgt.c1 = src.c1
WHEN MATCHED THEN UPDATE SET c2 = 70
WHEN NOT MATCHED THEN INSERT (TD_TIMECODE, TD_SEQNO, C1, C2)
VALUES (src.TD_TIMECODE, src.TD_SEQNO, src.c1, src.c2);

ソースのシーケンス化PTIテーブルsrc_sの時間バケット期間HOURS(1)は、ターゲットのシーケンス化PTIテーブルtgt_s2の時間バケット期間HOURS(2)と一致しないため、このマージを試行するとエラーが発生します。

MERGE INTO
tgt_s2 AS tgt
USING src_s AS src
ON tgt.TD_TIMECODE = src.TD_TIMECODE AND
   tgt.TD_SEQNO = src.TD_SEQNO
WHEN MATCHED THEN UPDATE SET c2 = 70
WHEN NOT MATCHED THEN INSERT
(src.TD_TIMECODE, src.TD_SEQNO, src.c1, src.c2);