让我说我有:
CREATE TABLE A (
a int,
b int,
PRIMARY KEY(a, b)
);
这很有效。现在我将a
和b
作为主键(这意味着它们是唯一的)。
然后我这样做:
CREATE TABLE B (a int,
b int,
FOREIGN KEY(a) REFERENCES A(a),
FOREIGN KEY(b) REFERENCES A(b)
);
但是这给了我一个错误there is no unique constraint matching given keys for referenced table "a"
答案 0 :(得分:1)
您已经说过a
和b
的组合构成了一个唯一的密钥,但这并不意味着a
和b
都是独特的,例如:
a | b
-----
1 | 2
1 | 3
2 | 2
在您的表A
中有效,但接下来的行会在B
中引用哪一行?
a | b
-----
1 | 2
a
可以引用1,2或1,3而b
可以引用1,2或2,2
这就是错误所抱怨的。