洪章桔 2017-03-16 15:46 采纳率: 0%
浏览 963

SQL 基础命令问题 insert

create table 学生表
(学号 nchar(10) primary key,
姓名 nchar (8) check (len(姓名)>=2 and len(姓名)<=5),
专业名 nchar(20),
性别 nchar(2) default '男' check(性别='男' or 性别='女'),
出生日期 smalldatetime,
入校成绩 nchar(3) check (入校成绩 between 200 and 700),
照片 image,
备注 nvarchar(500))
create table 课程表
(课程号 nchar(3) primary key check (课程号 like '[0-9][0-9][0-9]'),
课程名称 nchar(10),
任课老师 nchar(10),
学分 nchar(10))
create table 成绩表
(学号 nchar(10) ,
课程号 nchar(3) ,
成绩 nchar(100) check (成绩 between 0 and 100),
foreign key (学号) references 学生表(学号),
foreign key (课程号) references 课程表(课程号))
Insert into 成绩表(学号,课程号,成绩) values ('1111111','222','66')

错误提示 :图片说明消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 FOREIGN KEY 约束"FK__成绩表__学号__12C8C788"冲突。该冲突发生于数据库"MYDATEBASE",表"dbo.学生表", column '学号'。
语句已终止。

  • 写回答

2条回答 默认 最新

  • 广哥教打杂 2017-03-17 01:05
    关注

    你“成绩表”的[学号]字段与“学生表”中的[学号]存在约束,并且“成绩表”中的 [课程号]与“课程表”中的[课程号]存在约束。
    所以,你在插入"成绩表"之前,应该先确定“学生表”和"课程表"中的数据是否正确。

    正确写法是:

     Insert into 学生表(学号,姓名) values('1111111','张三')
    Insert into 课程表(课程号,课程名称) values('222','语文')
    Insert into 成绩表(学号,课程号,成绩) values ('1111111','222','66')
    
    评论

报告相同问题?