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.