0

私は4つのテーブルを持っています

Transaction(pay_id,pay_date,cust_name,cust_phone,cust_adrs,prod_name,amt,qty) とその 3 つの正規化されたバージョン

1. customer(cust_id, cust_name, cust_phone, cust_add)
2. product(prod_id,prod_name)

(** cust_id と prod_id は主キーであり、トランザクションから顧客と製品にデータを転送済みです。主キーは SEQUENCES を使用して入力されます。**)

3. payment(pay_id,pay_date,amt,qty,prod_id,cust_id)

ここで、トランザクションから支払いにデータを転送したいのですが、cust_id、prod_id は支払いテーブルの外部キーです。制約を損なうことなくトランザクションから支払いにデータを転送する方法は?

4

1 に答える 1

0

顧客と製品でトランザクションに参加し、支払いに挿入

INSERT payment(pay_date,amt,qty,prod_id,cust_id)
SELECT T.pay_date,T.amt,T.qty,P.prod_id,C.cust_id
FROM Transaction T
    JOIN customer C
       ON T.cust_name = C.cust_name
          AND T.cust_phone = C.cust_phone
          AND T.cust_adrs = C.cust_adrs
    JOIN product P
        ON C.prod_name = P.prod_name
于 2013-04-15T05:53:25.427 に答える