El problema se debe al hecho de que la clave externa, subj_code
, es parte de una varias columnas clave principal (PK) en la tabla referenciada enrolment
:
primary key (stud_id, subj_code, semester, year)
donde esta columna (subj_code
) no es el más a la izquierda .
Tabla student
no tiene este problema porque su columna de clave externa stud_id
es la columna más a la izquierda del PK en la tabla a la que se hace referencia.
Para resolver esto, puede crear un nuevo índice para la columna a la que se hace referencia:
ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
grade
en la otra clave foránea.