我创建了以下表格(有更多属性,但它们与问题无关):
CREATE TABLE PathData(
path_outer_id int,
path_inner_id int,
PRIMARY KEY(path_outer_id, path_inner_id)
);
CREATE TABLE Node(
node_id int AUTO_INCREMENT,
max_path_outer_id int,
max_path_inner_id int,
PRIMARY KEY(node_id)
);
并尝试使用以下命令连接它们:
ALTER TABLE Node ADD CONSTRAINT fk_1
FOREIGN KEY(max_path_outer_id) REFERENCES PathData(path_outer_id);
ALTER TABLE Node ADD CONSTRAINT fk_2
FOREIGN KEY(max_path_inner_id) REFERENCES PathData(path_inner_id);
但是,虽然 fk_1 工作,但 fk_2 导致无法添加外键约束错误,我不知道为什么,因为它与 fk_1 所做的完全相同,除了其他属性。我试过搜索导致这种情况的原因,但我似乎找不到任何类似的东西。
我认为这可能与 inner_id 在outer_id 之后被声明为PK 有关,但这似乎不合逻辑。