2017-01-02 65 views
0

我有三個表,並從第一個表我想數據列transId送入第二個表列refId,並從第三個表一樣我想數據列transId送入第二個表列refId與外鍵第一個和第三個表的關係。這怎麼可能?實現從兩個不同的表

+2

'send'是什麼意思?你的意思是什麼時候將一條記錄插入到table1中,它的transid會立即插入到另一個表中?您需要定義'發送' –

+0

您可以在同一列上創建多個外鍵 –

+0

但每個都需要該值存在。 –

回答

0

我們可以在同一列上創建多個外鍵,但其中的每一個都需要該值存在。

Eg: 
Table1(1,2,3) 
Table2(3,4) 

可以值3插入到table3列有外鍵關係都table1table2(價值3兩個table1table2存在),但你不能插入任何其他值。

還有就是要解決這一個多方法,你可以使用User Defined Functiontable3Check constraint一列中,檢查值存在與否在table1table2

0

你並不需要從表中的數據發送到其他。您只需要將foreign_key_column(refId)引用到Primary_key_column(transId)。
作爲例子:
使用SQL Server

// foreign key in second table 
CREATE TABLE Table2 
(
refId int FOREIGN KEY REFERENCES Table1(transId) 
) 
// foreign key in third table 
CREATE TABLE Table3 
(
refId int FOREIGN KEY REFERENCES Table1(transId) 
) 

helped Tutorial

0

似乎表2是含主表列TRANSID其中兩個表表1和表2.You引用需要去與在表2和表3中爲列轉換創建外鍵。您可以使用以下語法創建表間關係:

--foreign key in First table 
CREATE TABLE Table1 
(
refId int FOREIGN KEY REFERENCES Table2(transId) 
) 
-- foreign key in third table 
CREATE TABLE Table3 
(
refId int FOREIGN KEY REFERENCES Table2(transId) 
)