Problem wynika z faktu, że klucz obcy subj_code , jest częścią wielu kolumn klucz podstawowy (PK) w odnośnej tabeli enrolment :
primary key (stud_id, subj_code, semester, year)
gdzie ta kolumna (subj_code ) jest nie skrajnym lewym .
Tabela student nie ma tego problemu, ponieważ jego kolumna klucza obcego stud_id jest skrajną lewą kolumną PK we wskazanej tabeli.
Aby rozwiązać ten problem, możesz utworzyć nowy indeks dla wskazanej kolumny:
ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
Uwaga: Musisz zrobić to samo dla tabeli odniesienia grade w drugim kluczu obcym.