16.20 - 例 - Teradata Vantage NewSQL Engine

Teradata Vantage™ テンポラル テーブル サポート

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN
時間値と日付値は、事象の順序を明確にするために誇張してあります。

部品(Parts)と注文(Orders)について記述する2つのテーブルがあるとします。

Partsテーブル:

Part_ID Supplier_ID Price Discount Part_Validity
P1 S1 $10 10% (2008-01-01, 2011-01-01)

Orderテーブル:

Order_ID Part_ID Quantity Order_Validity
O1 P1 60 (2008-01-01, 2011-01-01)

次の2つのトランザクションについて考えてみます。これらは、上記のテーブルに適用されます。

  • 注文数の増加

    部品P1の現在の割引率(Discount)が10%以上の場合には、注文数を2倍にします。

    このトランザクションでは、Partsテーブルに基づいてOrdersテーブルを変更します。

    CURRENT VALIDTIME
    UPDATE Orders
    FROM Parts
    SET Quantity= quantity*2
    WHERE discount >= 10 AND Orders.part_id = Parts.part_id;
  • 割引率の引き下げ

    P1の現在の注文数量(Quantity)が100個未満の場合には、割引率を半分に引き下げます。

    このトランザクションでは、Ordersテーブルに基づいてPartsテーブルを変更します。

    CURRENT VALIDTIME
    UPDATE Parts
    FROM Orders
    SET discount = discount/2.0
    WHERE quantity < 100 AND Parts.part_id = Orders.part_id ;

これらのトランザクションを順番に実行するとすると、どちらのトランザクションを最初に実行したかによって結果が異なります。これについての実例を、次に示す最初の2つの例で説明します。