2016-07-18 6 views
-1

私は現在MySQLの仕事をしていますが、外来キーを使用しながら小さな問題を抱えています。問題は次のとおりです。MYSQLエラー "外部キー制約を追加できません"が表示されるのはなぜですか?

CREATE TABLE IF NOT EXISTS entries(
student_id INT(10) UNSIGNED NOT NULL, 
subject_name INT(10) UNSIGNED NOT NULL, 
exam_date VARCHAR(20) NOT NULL, 
PRIMARY KEY (exam_date), 
FOREIGN KEY (student_id) REFERENCES student (student_id), 
FOREIGN KEY (subject_name) REFERENCES subject (subject_name)); 

このコードを入力した後エラー1215が表示され、私は外部キー制約を追加できません。エラーを以下に示します。

ERROR 1215(HY000):

​​

I:私は外部キーをリンクしようとしていますの表は、この外部キー制約

を追加することはできませんこのテーブルに何の問題もなく、単に私のジレンマをどうやって解決することができるのだろうか?

+1

まず、生徒と科目の両方を作成し、エントリテーブルを作成します。そして、タイプミス(FOREIGN KEY(subject_name)REFERENCES subject(subject_name));)に気をつけてください。ここでは、生徒と作成された生徒を追加します。 –

答えて

1

entriesテーブルsubject_nameは対象テーブルのようsubject_nameのデータ型がvarcharあるデータ型intです。 MySQLでは外部キーを作成する際に 外部キー制約を追加するために2つのデータ型は

+0

これを修正することで、subject_nameコードをsubject_idに変更するだけですか? – LordZiggy

2

あなたは、他の Doublecheckタイプでsubject_nameの一つのテーブルでINT(10)とsubject_name VARCHAR(20)が一致している必要があります。

+0

これは私の問題を修正しましたありがとうございます。 – LordZiggy

関連する問題