INSERT 语句与 FOREIGN KEY SAME TABLE 约束"FK__Course__Cpno__060DEAE8"冲突。

使用SQL2008构建数据库,创建表格的代码如下:createtableStudent(Snochar(9)primarykey,Snamechar(20)notnull... 使用SQL2008构建数据库,创建表格的代码如下:
create table Student
(Sno char(9)primary key,
Sname char(20)not null,
Ssex char(2)check(Ssex in('男','女')),
Sage smallint not null,
Sdept char(20) not null
)

create table Course
(Cno char(4)primary key,
Cname char(40)not null,
Cpno char(4),
Ccredit smallint not null,
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),
)
执行上述代码后插入学生信息:
insert
into Student(Sno,Sname,Ssex,Sage,Sdept)
values('201215121','李勇','男','20','CS')
到这里没有问题,然后执行下列代码,插入课程信息:
insert
into Course(Cno,Cname,Cpno,Ccredit)
values('1','数据库','5','4')
SQL2008就报错了:
消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY SAME TABLE 约束"FK__Course__Cpno__060DEAE8"冲突。该冲突发生于数据库"XueSheng",表"dbo.Course", column 'Cno'。
语句已终止。

请问各位大侠,这是怎么回事的呢??
展开
 我来答
阳光上的桥
2013-01-29 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65812
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
Course(Cno,Cname,Cpno,Ccredit)表的cpno必要是在cno字段中存在,你插入的values('1','数据库','5','4')会失败,因为里面没有cno='5'的纪录。
追问
首先谢谢您的答复,我想追问一下,
那个Course表包含(课程号,课程名,先行课,学分)四个列,某些课程不需要先行课,但有些课程要,比如《数据库》的先行课是《数据结构》,那我该怎么修改代码呢??谢谢!!
追答
不需要先行课的,可以让先行课是自己
湛蓝微澜
2013-02-04 · TA获得超过2967个赞
知道大有可为答主
回答量:5407
采纳率:0%
帮助的人:1866万
展开全部
场(CNO,CNAME,Cpno,Ccredit)必要的在CNO领域中的cpno表,插入值吗??('1','数据库','5','4')将失败,因为没有CNO = '5'的记录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友59e391f
2019-10-14
知道答主
回答量:1
采纳率:0%
帮助的人:689
展开全部
这个问题怎么解决呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式