SQL Server:获取错误消息547,级别16,状态0,行28

时间:2017-06-12 01:26:43

标签: sql-server

这是我现在收到的错误:

  

Msg 547,Level 16,State 0,Line 28
  INSERT语句与FOREIGN KEY约束“FK__Registrat__Cours__32E0915F”冲突。冲突发生在数据库“Test2”,表“dbo.Course”,列“CourseCode”。

目前,我有这个:

CREATE TABLE Student
(
    StudentID int PRIMARY KEY, 
    StudentFName varchar(30) NOT NULL,
    StudentLName varchar(40) NOT NULL,
    GPA float CHECK(GPA >= 0 AND GPA <= 4) 
)

CREATE TABLE Course
(
    CourseCode varchar(10) PRIMARY KEY,
    CourseName varchar(50) UNIQUE,
    Duration int CHECK(Duration > 0)
)

CREATE TABLE Registration
(
    CourseCode varchar(10) REFERENCES Course(CourseCode), 
    StudentID int REFERENCES Student(StudentID), 
    CourseMark float CHECK(CourseMark >= 0 AND CourseMark <= 100)
    PRIMARY KEY(CourseCode, StudentID)
)

INSERT INTO Course
VALUES('ICT710', 'C#', 30)

SELECT * FROM Registration

INSERT INTO Registration
VALUES('ICT128', 123, 78.5),
      ('ICT128', 345, 68),
      ('ICT710', 123, 80)

我该如何解决这个问题?我正在尝试将这3行数据添加到我的Registration表中,如最后一行代码所述。

2 个答案:

答案 0 :(得分:0)

您需要先将“CourseCode”ICT128插入课程表。

答案 1 :(得分:0)

INSERT INTO Course
VALUES('ICT710', 'C#', 30)

INSERT INTO Course
VALUES('ICT128', 'PHP', 30)

SELECT * FROM Registration

INSERT INTO Registration
VALUES('ICT128', 123, 78.5),
      ('ICT128', 345, 68),
      ('ICT710', 123, 80)