這是現在我得到的錯誤:SQL服務器:收到錯誤消息547,級別16,狀態0,第28行
消息547,級別16,狀態0,第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
表中,如最後一行代碼所述。
'CourseCode'列偏好來自'Course'表,您是否在課程表中添加了'ICT128'? –
你是否在CourceCode「ICT128」的課程表中有行? –
你可能想看看合併聲明。如果pk不存在,合併語句將插入該行,如果它已經存在,則更新。 https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx –