【发布时间】:2021-10-08 14:44:39
【问题描述】:
我需要那个;
现在,我们有两张桌子。我想为每个表设置外键。但在这一点上,有这样的事情。在两个外键上,它将链接到对面的表。也就是说,A表的foreign1列会连接到B表的foreign1_ref列,B表的foreign2列会连接到A表的foreign2_ref列。
示例 SQL 表:
Table: A
+--+--------+------------+
|ID|foreign1|foreign2_ref|
+--+--------+------------+
Table: B
+--+--------+------------+
|ID|foreign2|foreign1_ref|
+--+--------+------------+
我怎样才能做到这一点? 谢谢。
【问题讨论】:
-
让我们从“为什么需要这个”开始?您要完成什么不能仅在单个表中使用外键?这仅在至少一个外键可以为空时才有效
-
你有什么问题?正如@mk1x86 所说,如果其中一个 FK 可以为空,它应该可以正常工作。为避免先有鸡还是先有蛋的问题,当您在两个表中有相互引用的行时,您必须使用空 FK 创建第一个,然后创建引用它的第二个,然后您可以更新第一个 FK。
标签: mysql foreign-keys