我試圖添加此數據。但是,它不允許我。如何添加也與學生相關的成績?錯誤代碼:1452無法添加或更新子行
錯誤代碼,似乎是「
錯誤代碼:1452不能添加或更新子行:外鍵約束失敗(university
grade_report
,約束grade_report_ibfk_1
外鍵(Student_number
)參考文獻STUDENT
(Student_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);
的問題是,要分配的3個值來GRADE_REPORT表,但也有在有4列。在這種情況下,您必須定義列名稱,就像@ user3349436建議的一樣。 – 2014-08-29 06:11:24