> 1452 - Cannot add or update a child row: a foreign key constraint fails
工具:navicat
错误情况:>1452 - Cannot add or update a child row: a foreign key constraint fails
具体SQL命令
#年级 CREATE TABLE IF NOT EXISTS `grade`( `gradeid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '年级id', `gradename` VARCHAR(50) NOT NULL COMMENT '年级名称', PRIMARY KEY(`gradeid`) )ENGINE=INNODB DEFAULT CHARSET=utf8; #学生 CREATE TABLE IF NOT EXISTS student( id INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', name VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', pwd VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码', sex VARCHAR(30) NOT NULL DEFAULT '女' COMMENT '性别', birthday DATE DEFAULT NULL COMMENT '出生日期', address VARCHAR(100) DEFAULT NULL COMMENT '家庭地址', email VARCHAR(50) DEFAULT NULL COMMENT '邮箱', stu_gradeid INT(10) NOT NULL COMMENT '学生的年级id', PRIMARY KEY(id), KEY `FK_gradeid` (stu_gradeid), CONSTRAINT `FK_gradeid` FOREIGN KEY(stu_gradeid) REFERENCES grade(gradeid) )ENGINE=INNODB DEFAULT CHARSET=utf8;
已执行:
INSERT INTO grade(gradename)value('大四'); INSERT INTO grade(gradename) VALUES('大一'),('大二'),('大三');
执行命令:
INSERT INTO student(name)VALUE('张') INSERT INTO student(name,pwd,sex)VALUE('张','12002','女') INSERT INTO student(name,pwd,sex)VALUE('刘','aaaa','男'
解决:,先对主表grade插入数据,接着在对student表执行插入数据的操作时,要与student表外键stu_gradeid对应的主表主键gradeid的值保持一致即可