次の表では、テンポラル マージでの行の変更について説明します。
テンポラル マージ タイプ | 変更の詳細 |
---|---|
current | 一致する行が見つかった場合、currentマージの結果はcurrent更新になり、そうでない場合はcurrent挿入になります。 UPDATE部分のSET句では、valid-time列やtransaction-time列を更新する列の名前として参照することはできません。 一致した行の更新時に、システムによりテンポラル列が変更される場合があります。行パーティション テーブルの場合は、テンポラル列を変更すると同じAMP内でローのパーティションが変わる場合は、ローを削除し新しいローを挿入する必要があるため、この計画は準最適になります。挿入には、スプールが必要になります。 INSERTで名前指定リストまたは割り当てリストを使用すると、マージのINSERT部分でvalid-time値を指定できるようになります。この行は、同じAMPにある一致したパーティションとは異なる別のパーティションに挿入できます。これは、一致した行のパーティションが変更されるときと同じように、挿入される行がスプールされる場合に実現されます。 |
Sequenced | ソース行とターゲット行がsequencedマージの照合条件を満たす場合は、sequenced更新が実行されます。
ソース行とターゲット行が照合条件を満たさない場合は、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にある一致したパーティションとは異なる別のパーティションに挿入できます。 |