Das Problem liegt daran, dass der Fremdschlüssel subj_code
, ist Teil einer mehrspaltigen Primärschlüssel (PK) in der referenzierten Tabelle enrolment
:
primary key (stud_id, subj_code, semester, year)
wobei diese Spalte (subj_code
) ist nicht ganz links .
Tabelle student
hat dieses Problem nicht, weil seine Fremdschlüsselspalte stud_id
ist die ganz linke Spalte des PK in der referenzierten Tabelle.
Um dies zu beheben, können Sie einen neuen Index für die referenzierte Spalte erstellen:
ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
Hinweis: Dasselbe müssen Sie für die referenzierte Tabelle grade
tun im anderen Fremdschlüssel.