我有三个表,从第一个表开始,我想将数据列transId
发送到第二个表列refId
,而第三个表中我想将数据列transId
发送到第二个表列refId
,包含第一个和第三个表的关系。这怎么可能?
答案 0 :(得分:0)
我们可以在同一列上创建多个外键,但每个外键都需要存在该值。
Eg:
Table1(1,2,3)
Table2(3,4)
您可以将值3
插入table3
列,该列与table1
和table2
之间存在外键关系(值3
table1
和table2
),但您无法插入任何其他值。
还有一种方法可以解决此问题,您可以在User Defined Function
Check constraint
列的table3
内使用table1
来检查table2
中是否存在该值return redirect()->guest('login');
答案 1 :(得分: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)
)
答案 2 :(得分:0)
似乎Table2是包含列transId的主表,它引用了两个表table 1和table 2.你需要在表2和表3中创建外键,用于列transId。你可以使用下面的语法来创建表之间的关系:
--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)
)