2014-08-29 91 views
0

我試圖添加此數據。但是,它不允許我。如何添加也與學生相關的成績?錯誤代碼:1452無法添加或更新子行

錯誤代碼,似乎是「

錯誤代碼:1452不能添加或更新子行:外鍵約束失敗(universitygrade_report,約束grade_report_ibfk_1外鍵(Student_number)參考文獻STUDENTStudent_number ?))

可能的解決方案

Create database UNIVERSITY; 

USE UNIVERSITY; 


CREATE TABLE STUDENT(
Name VARCHAR(150), 
Student_number INT, 
Class INT, 
Major VARCHAR(50), 
PRIMARY KEY (Student_number) 
); 

CREATE TABLE UNIT (
Unit_name VARCHAR(120), 
Unit_number VARCHAR(20), 
Credit INT, 
School VARCHAR(10), 
PRIMARY KEY (Unit_number) 
); 

CREATE TABLE SECTION (
Section_id INT, 
Unit_number VARCHAR(20), 
Semester INT, 
Year INT, 
Lecturer VARCHAR(150), 
PRIMARY KEY (Section_id), 
FOREIGN KEY (Unit_number) REFERENCES UNIT(Unit_number) 
); 

CREATE TABLE GRADE_REPORT (
Student_number INT, 
Section_id INT, 
Grade INT, 
FOREIGN KEY (Student_number) REFERENCES STUDENT(Student_number), 
FOREIGN KEY (Section_id) REFERENCES SECTION (Section_id) 
); 


INSERT INTO STUDENT 
VALUES 
('Smith', 17, 1, 'CS'), 
('Brown', 8, 2, 'CS’); 

INSERT INTO UNIT 
VALUES 
(‘Intro to CS’, ‘IN101’, 8, ‘CS’), 
(‘Data Structures’, ‘CS302’, 8, ‘CS’), 
(‘Database’, ‘IAB130’, 8, ‘IS’), 
(‘Discrete Maths’, ‘MATH120’, 10, ‘MATH’); 

INSERT INTO SECTION 
VALUES 
(85, ‘IN101’, 1, 2012, ‘Smith’), 
(102, ‘CS302’, 1, 2012, ‘King’), 
(103, ‘IN101’, 2, 2013, ‘Baily’), 
(96, ‘MATH120’, 1, 2012, ‘Jones’); 

問題是在這裏:

INSERT INTO GRADE_REPORT 
VALUES 
(17, 85, 7), 
(8, 103, 5), 
(8, 102, 6), 
(8, 85, 6), 
(9, 85, 5), 
(17, 96, 4); 
+0

的問題是,要分配的3個值來GRADE_REPORT表,但也有在有4列。在這種情況下,您必須定義列名稱,就像@ user3349436建議的一樣。 – 2014-08-29 06:11:24

回答

1

ù必須定義的字段爲每個數據目的地這樣

INSERT INTO GRADE_REPORT (`Student_number`,`Section_id`,`Grade`) VALUES (17, 85, 7), (8, 103, 5), (8, 102, 6), (8, 85, 6), (9, 85, 5), (17, 96, 4); 
+0

我已將代碼添加到SQL中,但它返回「錯誤代碼:1452.無法添加或更新子行:外鍵約束失敗('university'.'grade_report',CONSTRAINT'grade_report_ibfk_1' FOREIGN KEY('Student_number ')參考'學生'('Student_number'))「 – 2014-08-31 05:50:55

相關問題