2017-02-23 76 views
2

我有兩個表中存在?值必須在兩個表

+0

您是否考慮過外鍵? – HoneyBadger

+0

不,我不知道如何解釋,但每個客戶都必須有一個客戶電話 – Yakalent

+0

如何將客戶電話放在客戶桌上而不是自己的桌上?或者客戶可以有多個電話號碼?由於無法同時插入兩個表(儘管存在交易),因此無法確保記錄必須存在於兩個表中。 –

回答

4

這不能與聲明引用完整性(DRI)單獨完成。添加外鍵約束只是解決方案的一部分。您還需要將插入操作的事務和業務邏輯封裝到2個表中。我建議在存儲過程中執行此操作,以便從應用程序的角度以原子操作方式運行。

Begin Transaction 
    Logic around inserting a Customer 
    Logic around inserting CustomerPhone row 
If the newly added Customer has a CustomerPhone 
    Commit Transaction 
Else 
    Rollback Transaction 
2

使cust_id成爲表customer上的主鍵。

然後在表customerphone上製作cust_id一個外鍵,該表上的指向customer

這時如果cust_idcustomer已經存在,你只能行添加到customerphone