日期:2014-05-18  浏览次数:20465 次

大神来看看 用insert values语句插入数据时报错
USE student
GO
CREATE TABLE 系部
(系部代码 char(2) CONSTRAINT sa PRIMARY KEY NOT NULL,
 系部名称 varchar(30) NOT NULL,
 系主任 varchar(8) NOT NULL
)

insert into 系部
(系部代码,系部名称 ,系主任 )
values('03','商务技术系','刘建清')
go
insert into 系部
(系部代码,系部名称 ,系主任 )
values('04','传播技术系','田建国')
go
*************************************************************
这个系部表数据能出入成功!


USE student
GO
CREATE TABLE 教师
(教师编号 char(12) CONSTRAINT mm PRIMARY KEY,
姓名 varchar (8) NOT NULL,
性别 char(2),
出生日期 datetime,
学历 varchar(10),
职务 char(10), 
职称 char(10),
系部代码 char(2) CONSTRAINT dd REFERENCES 系部(系部代码),
专业 char(20),
备注 varchar(50),
)
use liuliang
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('010000000001','杨学全','男','1967-02-02','研究生','主任','副教授','01','计算机')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('020000000002','李英杰','男','1972-12-30','研究生','教学秘书','讲师','01','计算机')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('020000000003','陈素羡','女','1968-09-07','本科','教师','讲师','02','经济管理')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('030000000004','刘辉','女','1980-09-08','本科','教师','助教','02','商务')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('040000000005','张红强','女','1978-11-21','本科','教师','助教','04','电视编辑')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('040000000006','田建国','男','1964-01-01','研究生','主任','副教授','04','机械')
go
insert into 教师
(教师编号,姓名,性别,出生日期,学历,职务,职称,系部代码,专业)
values('060000000007','程治国','男','1967-02-02','研究生','教师','副教授','01')
go
就是这个表不能正常插入了会报错:消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY 约束"??"冲突。该冲突发生于数据库"??",表"??"
求解决办法和这样出错的原因!

------解决方案--------------------
系部的代码不在系部表里存在咯
------解决方案--------------------
问题好像是你在 系部 这个表中没有 系部代码 01, 02,而你在插入数据到表教师时 有引用到系部01, 02. 所以你可以是试试插入01, 02 这两个系部代码到系部表中.
------解决方案--------------------
你在创建教师表的时候创建了外键约束,参考的是系部表,也就是说你要插入的教师表里面的系部代码必须是系部表里面存在的,在你插入的数据中有系部编码为01的,这条数据在系部表中不存在所以会报错。
解决办法只能先在系部表中插入系部代码为01的系才可以。
------解决方案--------------------
有外键约束,教师表插入的数据引用外键系部代码在系部表不存在,就会出现这样的问题,仔细查查。
------解决方案--------------------
楼上正解,把01,02的记录插入系部表就应该可以了