【发布时间】:2017-07-17 10:52:56
【问题描述】:
假设有两个表table1 和table2,其中第二个引用第一个。
我想知道以下两种定义它们的外键关系的形式是否会导致第二个表的表结构相同。
CREATE TABLE table1(a INT, b INT, PRIMARY KEY(a, b));
1)
CREATE TABLE table2(a INT, b INT,
FOREIGN KEY(a, b) REFERENCES table1(a, b)
);
2)
CREATE TABLE table2(a INT, b INT,
FOREIGN KEY(a) REFERENCES table1(a),
FOREIGN KEY(b) REFERENCES table1(b)
);
我认为没有区别,但找不到任何参考来支持这种说法。
【问题讨论】:
-
您为什么不尝试运行您的代码?第一次创建应该失败(超过一个 PK)。而且#2和#3有很大的不同,#2是多列FK,#3是两个单列FK。
-
它们有很大的不同。第一个单独定义外键,第二个定义引用该对键的外键。这不仅仅是句法上的差异。
-
@SkryptX 谢谢老兄,完美答案
-
@dnoeth 好的,是的。我很不耐烦。我会更新问题
标签: sql foreign-keys multiple-columns