0

我有四张桌子

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 是主键,我已经将数据从 Transaction 传输到 cutomer 和 product。使用 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 回答