为什么会出现MYSQL错误;无法添加外键约束";显示?
我目前正在完成MySQL任务,在使用外键时遇到了一个小问题。问题如下:为什么会出现MYSQL错误;无法添加外键约束";显示?,mysql,Mysql,我目前正在完成MySQL任务,在使用外键时遇到了一个小问题。问题如下: 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 studen
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,表示无法添加外键约束。错误如下所示:
错误1215(HY000):无法添加外键约束
我试图链接外键的表如下:
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));
我对这个表没有问题,只是想知道如何解决我的困境?
条目
tablesubject\u name
是数据类型int
,而在subjects表中,subject\u name
的数据类型是varchar
。
为了添加外键约束,这两种数据类型必须匹配,一个表中有subject_name INT(10),另一个表中有subject_name VARCHAR(20)
在MySQL中创建外键时双重检查类型。首先创建表student和subject,然后创建表条目。注意打字错误(外键(主题名称)引用主题(主题名称));)这里您正在添加学生并创建表学生。因此,通过修复此问题,我只需将代码subject\u name更改为subject\u id?谢谢,这已修复了我的问题。