创建3个表,分别是student、sc、Course表。其中只有student表可以插入数据,其余两个表无法插入数据

LandyTan 2018-03-28 02:09:15
/**********************************************/
// 创建表
create table student(
-> Sno CHAR(9) PRIMARY KEY,
-> Sname CHAR(20) UNIQUE,
-> Ssex CHAR(2),
-> Sage SMALLINT,
-> Sdept CHAR(20));

create table Course(
-> Cno CHAR(4) PRIMARY KEY,
-> Cname CHAR(40) NOT NULL,
-> Cpno CHAR(4),
-> Ccredit SMALLINT,
-> FOREIGN KEY(Cpno)REFERENCES Course(Cno));

create table sc(
-> Sno CHAR(9),
-> Cno CHAR(4),
-> Grade SMALLINT,
-> PRIMARY KEY(Sno, Cno),
-> FOREIGN KEY(Sno)REFERENCES student(Sno),
-> FOREIGN KEY(Cno)REFERENCES Course(Cno));

/**********************************************/
// 插入数据到student表(成功)
mysql> insert into student values('201215121','李勇','男',20,'CS');
Query OK, 1 row affected (0.01 sec)

mysql> insert into student values('201215122','刘晨','女',19,'CS');
Query OK, 1 row affected (0.00 sec)

mysql> insert into student values('201215123','王敏','女',18,'MA');
Query OK, 1 row affected (0.01 sec)

mysql> insert into student values('201215125','张立','男',19,'IS');
Query OK, 1 row affected (0.01 sec)

/**********************************************/
// 插入数据到course表(错误)
mysql> insert into course values('1','数据库','5',4);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`learning`.`course`, CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `course` (`Cno`))
mysql> insert into course values(1 ,'数据库','5',4);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`learning`.`course`, CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `course` (`Cno`))
mysql> insert into course values('数据库',4);
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> insert into course(Cno, Cname, Cpno, Ccredit) values('1','数据库','5', 4);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`learning`.`course`, CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `course` (`Cno`))

/**********************************************/
// 插入数据到sc表(错误)
mysql> insert into sc values('201215121','1',92);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
mysql> insert into sc values('201215121','2',85);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
mysql> insert into sc values('201215121','1',NULL);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`learning`.`sc`, CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`))
mysql> INSERT INTO SC(Sno, Cno) VALUES('201215121','1');
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`learning`.`sc`, CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`))
...全文
2201 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LandyTan 2018-03-29
  • 打赏
  • 举报
回复
就是按照书上弄得,但就是一直报错
crynono 2018-03-29
  • 打赏
  • 举报
回复
create table Course( -> Cno CHAR(4) PRIMARY KEY, -> Cname CHAR(40) NOT NULL, -> Cpno CHAR(4), -> Ccredit SMALLINT, -> FOREIGN KEY(Cpno)REFERENCES Course(Cno)); 最后一行错啦,cpno怎么和自己的cno有关系呢
crynono 2018-03-28
  • 打赏
  • 举报
回复
楼上正解,这种错误先看看书上基本概念
TodayZ 2018-03-28
  • 打赏
  • 举报
回复
提示很明显啊,外键找不到对应的记录出错,初学者吧。 给个建议,insert 语句最好带上 字段名,这样好查问题。
数据库系统概论Sql练习studentsccourse 数据库系统概论 数据库系统概论Sql 练习 练习student、 、sc、 、course。 。 先创建⼀个数据库 create database sql_test; //创建名为sql_test的数据创建三张studentsccourse (1)student CREATE TABLE `student` ( `Sno` char(20) NOT NULL, `Sname` char(20) DEFAULT NULL, `Ssex` char(2) DEFAULT NULL, `Sage` smallint DEFAULT NULL, `Sdept` char(20) DEFAULT NULL, PRIMARY KEY (`Sno`), UNIQUE KEY `Sname` (`Sname`) ); //直接复制即可 (2)course CREATE TABLE `course` ( `Cno` char(4) NOT NULL, `Cname` char(40) NOT NULL, `Cpno` char(4) DEFAULT NULL, `Ccredit` smallint DEFAULT NULL, PRIMARY KEY (`Cno`), KEY `Cpno` (`Cpno`), CONSTRAINT `course_ibfk_1` FOREIGN KEY (`Cpno`) REFERENCES `course` (`Cno`) ); (3)sc CREATE TABLE `sc` ( `Sno` char(20) NOT NULL, `Cno` char(4) NOT NULL, `Grade` smallint DEFAULT NULL, PRIMARY KEY (`Sno`,`Cno`), KEY `Cno` (`Cno`), CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`Sno`) REFERENCES `student` (`Sno`), CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`Cno`) REFERENCES `course` (`Cno`) ); 插⼊数据 (1)student INSERT INTO `student` VALUES ('201215121', '李勇', '男', 20, 'CS'); INSERT INTO `student` VALUES ('201215122', '刘晨', '⼥', 19, 'CS'); INSERT INTO `student` VALUES ('201215123', '王敏', '⼥', 19, 'MA'); INSERT INTO `student` VALUES ('201215125', '张⽴', '男', 19, 'IS'); (2)course insert into COURSE(Cno,Cname)values('1','数据库'); insert into COURSE(Cno,Cname)values('2','数学'); insert into COURSE(Cno,Cname)values('3','信息系统'); insert into COURSE(Cno,Cname)values('4','操作系统'); insert into COURSE(Cno,Cname)values('5','数据结构'); insert into COURSE(Cno,Cname)values('6','数据处理'); insert into COURSE(Cno,Cname)values('7','PASCAL语⾔'); //先插⼊第⼀段,因为参照完整性规则此含有student的外键不能⼀次性插⼊ update COURSE set Cpno='5',Ccredit = 4 where Cno = '1'; update COURSE set Cpno='4',Ccredit = 2 where Cno = '2'; update COURSE set Cpno='1',Ccredit = 4 where Cno = '3'; update COURSE set Cpno='6',Ccredit = 3 where Cno = '4'; update COURSE set Cpno='7',Ccredit = 4 where Cno = '5'; update COURSE set Cpno='5',Ccredit = 2 where Cno = '6'; update COURSE set Cpno=

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧