ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint f
ails (`test`.`course`, CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCE
S `course` (`Cno`))创建了这样一个表:
create table Course
(Cno char(4) primary key,
Cname char(40),
Cpno char(4),
Ccredit smallint,
foreign key (Cpno) references Course(Cno));建一个.sql的文件里边放这些内容:
insert into Course values('1','数据库','5',4);
insert into Course values('2','数学',null,2);
insert into Course values('3','信息系统','1',4);
insert into Course values('4','操作系统','6',3);
insert into Course values('5','数据结构','7',4);
insert into Course values('6','数据处理',null,2);
insert into Course values('7','PASCAL','6',4);用source e:/abc.sql;导入的时候用source 的形式将.sql文本导入mysql命令提示符里,提示这个错误,导入的时候,有几个元组能导入,而其他的元组第一次导入进去,多导入几次才行,什么原因,求知道的给点指点。

解决方案 »

  1.   

    SET FOREIGN_KEY_CHECKS = 0再导入试试
      

  2.   

    insert into Course values('1','数据库','5',4);
    insert into Course values('2','数学',null,2);
    insert into Course values('3','信息系统','1',4);
    insert into Course values('4','操作系统','6',3);
    insert into Course values('5','数据结构','7',4);
    insert into Course values('6','数据处理',null,2);
    insert into Course values('7','PASCAL','6',4);
    把这些语句直接一句句复制到MYSQL中执行。 你就知道哪一句有问题了。你的错误提示是,违反了外键约束。在Course表中根本不存在某个课程号。insert into Course values('6','数据处理',null,2);
      

  3.   

    导入的时候就显示那句出错,那句能够导入,第一次导入后 输入selecet * from Course; 就可以看到那几行导入了。
    但是我看你的那句话好像突然有点明白了,就是相当于 当第一个插入语句insert into Course values('1','数据库','5',4); 他的那个5还没有可参考的值,没有5这个选项,因此会出错。把各个导入的顺序换一下就应该可以了是吧?