为什么MYSQL错误“无法添加外键约束”显示?

Why is the MYSQL error “Cannot add foreign key constraint” showing?

本问题已经有最佳答案,请猛点这里访问。

我目前正在完成我的MySQL任务,并在使用外键时遇到了一个小打嗝。 问题如下:

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS entries(
student_id INT(10) UNSIGNED NOT NULL,
subject_name INT(10) UNSIGNED NOT NULL,
exam_date VARCHAR(20) NOT NULL,
PRIMARY KEY (exam_date),
FOREIGN KEY (student_id) REFERENCES  student (student_id),
FOREIGN KEY (subject_name) REFERENCES subject (subject_name));

输入此代码后,弹出错误1215,说我无法添加外键约束。 错误如下所示:

ERROR 1215 (HY000): Cannot add foreign key constraint

我试图链接外键的表是这样的:

1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS subjects(
student_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
subject_name VARCHAR(20) NOT NULL,
level_of_entry VARCHAR(20),
exam_board VARCHAR(40) NOT NULL,
PRIMARY KEY(student_id));

我对这张表没有任何问题,只是想知道如何解决我的困境?


您在一个表中有subject_name INT(10),在另一个表中有subject_name VARCHAR(20)
在MySQL中创建外键时,双重检查类型。


entries table subject_name的数据类型为int,其中在subject表中,subject_name的数据类型为varchar
为了添加外键约束,2种数据类型必须匹配