2017-01-02 29 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) 
)