新表中如何插入才不受完整性约束限制????

来源:百度知道 编辑:UC知道 时间:2024/05/22 09:43:30
我建了一个新表
create table Course(
Cno smallint primary key,
Cname varchar(10) NOT NULL,
Cpno smallint references Course(Cno),
Ccredit smallint
);
接着插入记录
insert into Course
values(1,'数据库',5,4);
此时无法运行
错误提示:INSERT 语句与 COLUMN FOREIGN KEY SAME TABLE 约束 'FK__Course__Cpno__7A9C383C' 冲突。该冲突发生于数据库 'MStudent',表 'Course', column 'Cno'。
语句已终止。

怎么才能插入记录啊??

values(1,'数据库',5,4);
改成
values(1,'数据库',1,4);
因为Cpno smallint references Course(Cno)引用了cno

Cno是一个自动编号,不能直接赋值的。

insert into Course Cname,Cpno,Ccredit values('数据库',5,4)

这样就可以了。

'FK__Course__Cpno__7A9C383C' 意思是Cpno是另一个表的外键.
所输入的数据要么为空 要么必须是关联表中存在的.
Cpno smallint references Course(Cno), 看你这里创建的应该是自身连接.所以应该保证Cpno 的值和表中已存在的Cno值对应.

要想不受约束,那当然是取消外键。