创建此外键时我缺少什么?

问题描述 投票:0回答:1

代码

创建表学生( id INT 主键自动递增, 名字 VARCHAR(100), 姓氏 VARCHAR(100), MajorID INT);

创建专业表( id 整数, 专业名称 VARCHAR(100));

ALTER TABLE majors
    ADD FOREIGN KEY(id) REFERENCES Students(majorID);

出于某种原因,每当我尝试创建外键时,我总是在 mysql 中收到“无法创建外键约束”错误,但父级和它都是完全相同的类型。

我稍后尝试使用 Alter table 添加键,从两者中删除主键约束,一个然后另一个,分配无符号约束并将其删除,但无济于事。

我现在感觉真的很愚蠢,因为我从过去的工作中看到,我能够以完全相同的方式添加它们,没有任何问题,所以不确定到底发生了什么变化。

mysql mysqli
1个回答
0
投票
ALTER TABLE majors
ADD CONSTRAINT majors_ibfk_1 FOREIGN KEY(id) REFERENCES Students(majorID);

你需要

ADD CONSTRAINT majors_ibfk_1

顺便说一句,不应该是这个,因为你的 MajorID 是 Students 表中的外键?

ALTER TABLE Students    
ADD CONSTRAINT students_ibfk_1 FOREIGN KEY(majorID) REFERENCES majors(id);
© www.soinside.com 2019 - 2024. All rights reserved.