行の変更 - 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/bud1592002688266.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

次の表では、テンポラル マージでの行の変更について説明します。

テンポラル マージ タイプ 変更の詳細
current 一致する行が見つかった場合、currentマージの結果はcurrent更新になり、そうでない場合はcurrent挿入になります。

UPDATE部分のSET句では、valid-time列やtransaction-time列を更新する列の名前として参照することはできません。

一致した行の更新時に、システムによりテンポラル列が変更される場合があります。行パーティション テーブルの場合は、テンポラル列を変更すると同じAMP内でローのパーティションが変わる場合は、ローを削除し新しいローを挿入する必要があるため、この計画は準最適になります。挿入には、スプールが必要になります。

INSERTで名前指定リストまたは割り当てリストを使用すると、マージのINSERT部分でvalid-time値を指定できるようになります。この行は、同じAMPにある一致したパーティションとは異なる別のパーティションに挿入できます。これは、一致した行のパーティションが変更されるときと同じように、挿入される行がスプールされる場合に実現されます。

Sequenced ソース行とターゲット行がsequencedマージの照合条件を満たす場合は、sequenced更新が実行されます。
  • どちらのテーブルもテンポラルの場合、更新されるvalid-time部分は適用期間、ターゲット テーブルの行の有効期間、およびソース行の有効期間の共通部分になります。

    ソース行の有効期間と適用期間の共通部分は、ターゲット行の有効期間に収まる必要があります。

  • ターゲット テーブルのみがテンポラルの場合、更新されるvalid-time部分は適用期間と、ターゲット テーブルの行の有効期間との共通部分になります。
  • UPDATE部分のSET句では、valid-time列やtransaction-time列を更新する列の名前として参照することはできません。

ソース行とターゲット行が照合条件を満たさない場合は、sequenced挿入が実行されます。挿入の適用期間は、指定されていても無視されます。挿入の指定は単純sequenced挿入のルールに従い、INSERTでvalid-time列値を指定できます。指定したvalid-time列値を含む行は、同じAMPにある一致したパーティションとは異なる別のパーティションに挿入できます。

Nonsequenced nonsequencedマージで一致する行が見つかった場合はnonsequenced更新が実行され、そうでない場合はnonsequenced挿入が実行されます。

UPDATE部分のSET句では、valid-time列を更新する列の名前として参照できます。

valid-time列をパーティション化している行パーティション テーブルでは、valid-time列を変更できます。

挿入の指定は単純nonsequenced挿入のルールに従い、valid-time列値を指定できます。指定したvalid-time列値を含む行は、同じAMPにある一致したパーティションとは異なる別のパーティションに挿入できます。