問題は、外部キー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
についても同じことを行う必要があります 他の外部キーで。