2017-10-10 3 views
0

오류 코드 1005가 표시됩니다. 이는 외래 키와 관련된 문제입니까? 아무도 나에게 이것을 설명 할 수 있습니까!MySQL 오류 1005 - 외래 키가 작동하지 않습니다.

CREATE SCHEMA test; 
Use test; 

CREATE TABLE student 
(
stud_id INT(7) NOT NULL , 
stud_name VARCHAR(30) NOT NULL , 
PRIMARY KEY (stud_id) 
); 
CREATE TABLE subject 
(
subj_code VARCHAR(7) NOT NULL , 
PRIMARY KEY (subj_code) 
); 
CREATE TABLE grade 
(
stud_id INT(7) NOT NULL , 
subj_code VARCHAR(7) NOT NULL , 
semester INT(1) NOT NULL , 
year YEAR(4) NOT NULL , 
grade VARCHAR(4) NOT NULL , 
PRIMARY KEY (stud_id, subj_code, semester, year) , 
FOREIGN KEY (stud_id) REFERENCES student(student_id) 
); 
CREATE TABLE subj_enrolment 
(
stud_id INT(7) NOT NULL , 
subj_code VARCHAR(7) NOT NULL , 
semester INT(1) NOT NULL , 
year YEAR(4) NOT NULL , 
comment VARCHAR(300) , 
PRIMARY KEY (stud_id, subj_code, semester, year) , 
FOREIGN KEY (stud_id) REFERENCES student(student_id) , 
FOREIGN KEY (subj_code) REFERENCES subject(subject_code) 
); 

어떤 도움을 주시면 감사하겠습니다!

+0

학생 전용 stud_id에는 student_id가 없습니다. –

+0

항상 뭔가 너무 간단하고 어리 석고 ... 고마워! –

+0

나는 또한 당신의 외래 키를 당신의 기본 키와 똑같이 부르라고 조언하지 않는다. –

답변

0

참조에 잘못된 열 이름을 사용하고 있습니다. student_id가 학생 테이블의 열 이름이 아니므로 stud_id 여야합니다. subject_code도 마찬가지입니다. 나는 그들을 정정하고 아래에 게시했다.

CREATE SCHEMA test; 
Use test; 

CREATE TABLE student 
(
stud_id INT(7) NOT NULL , 
stud_name VARCHAR(30) NOT NULL , 
PRIMARY KEY (stud_id) 
); 
CREATE TABLE subject 
(
subj_code VARCHAR(7) NOT NULL , 
PRIMARY KEY (subj_code) 
); 
CREATE TABLE grade 
(
stud_id INT(7) NOT NULL , 
subj_code VARCHAR(7) NOT NULL , 
semester INT(1) NOT NULL , 
year YEAR(4) NOT NULL , 
grade VARCHAR(4) NOT NULL , 
PRIMARY KEY (stud_id, subj_code, semester, year) , 
FOREIGN KEY (stud_id) REFERENCES student(stud_id) 
); 
CREATE TABLE subj_enrolment 
(
stud_id INT(7) NOT NULL , 
subj_code VARCHAR(7) NOT NULL , 
semester INT(1) NOT NULL , 
year YEAR(4) NOT NULL , 
comment VARCHAR(300) , 
PRIMARY KEY (stud_id, subj_code, semester, year) , 
FOREIGN KEY (stud_id) REFERENCES student(student_id) , 
FOREIGN KEY (subj_code) REFERENCES subject(subj_code) 
);