2017-10-10 7 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

学生専用スタッドIDにstudent_idはありません。 –

+0

いつも何かそんなに単純で愚かな...ありがとう! –

+0

私はあなたの外部キーをプライマリキーと同じもの –

答えて

0

参照に間違った列名を使用しています。student_idはstudent表の列名ではなく、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) 
); 
関連する問題