建表:
CREATE TABLE Course
( Cno Char(4) PRIMARY KEY,
Cname Char(40),
Cpno Char(4),
Ccredit Int,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);
插入数据:
INSERT INTO Course VALUES('1','数据库','5',4);
INSERT INTO Course VALUES('2', ' 数学', '',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', '数据处理', '',2);
INSERT INTO Course VALUES('7', ' PASCAL语言', '6',4);
报错:
cannot add or update a child row....
原因:
外键限制,无法插入,在上面的例子中就是第一个插入INSERT INTO Course VALUES('1','数据库','5',4);时先导课程5没有这个选项,因此会报错,需要调整导入的顺序就可以了,即没有先导的课程先插入,然后插入有先导并且先导课程已经插入了的。
感悟:
初学数据库,而且全自学,还很需要学习!