我到处寻找可能的解决方案并且一直未能找到任何东西。错误1452(23000):无法添加或更新子行:外键约束失败MySQL
这里是我的表:
CREATE TABLE IF NOT EXISTS students(
student_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(40) NOT NULL,
middle_name VARCHAR(20),
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
password CHAR(40) NOT NULL,
reg_date DATETIME NOT NULL,
PRIMARY KEY (student_id),
UNIQUE(email));
而且,
CREATE TABLE IF NOT EXISTS subjects(
subject_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
subject_name VARCHAR(20) NOT NULL,
level_of_entry VARCHAR(12) NOT NULL,
exam_board VARCHAR(12) NOT NULL,
PRIMARY KEY (subject_id),
UNIQUE(subject_id));
最后,
CREATE TABLE IF NOT EXISTS entries (
entry_id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(entry_id),
student_id INT UNSIGNED NOT NULL,
subject_id INT UNSIGNED NOT NULL,
date_of_exam DATETIME NOT NULL,
FOREIGN KEY (student_id) REFERENCES students (student_id),
FOREIGN KEY (subject_id) REFERENCES subjects (subject_id));
我需要输入5个记录到使用外键与其它表项两张桌子。这是我用来输入记录到的条目代码:返回
INSERT INTO entries
VALUES (NULL, NULL, NULL, '2010-04-19'),
(NULL, NULL, NULL, '2015-06-17'),
(NULL, NULL, NULL, '2011-07-21'),
(NULL, NULL, NULL, '2009-01-12'),
(NULL, NULL, NULL, '2016-11-16');
此错误消息:
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`exams`.`entries`, CONSTRAINT `entries_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`student_id`))
任何意见或建议,将不胜感激。
当您将字段定义为NOT NULL时,您如何期望插入null? – e4c5
@ e4c5我不知道还有什么要放 – Kez
你连接你的条目表的学生ID和主题ID应该在空位。 – Shadow