Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么会出现MYSQL错误;无法添加外键约束";显示?_Mysql - Fatal编程技术网

为什么会出现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

我目前正在完成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  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));

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

条目
table
subject\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?谢谢,这已修复了我的问题。