問題は、外部キーsubj_codeが原因です。 、は複数列の一部です 参照されるテーブルenrolmentの主キー(PK) :
primary key (stud_id, subj_code, semester, year)
ここで、この列(subj_code )は左端ではありません 。
テーブルstudent 外部キー列stud_idであるため、この問題は発生しません。 参照されるテーブルのPKの左端の列です。
これを解決するには、参照される列の新しいインデックスを作成できます:
ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
注: 参照されるテーブルgradeについても同じことを行う必要があります 他の外部キーで。