O problema se deve ao fato de que a chave estrangeira,
subj_code
, faz parte de um multicoluna chave primária (PK) na tabela referenciada enrolment
:primary key (stud_id, subj_code, semester, year)
onde esta coluna (
subj_code
) não é o mais à esquerda . Tabela
student
não tem esse problema porque sua coluna de chave estrangeira stud_id
é a coluna mais à esquerda do PK na tabela referenciada. Para resolver isso, você pode criar um novo índice para a coluna referenciada:
ALTER TABLE enrolment ADD INDEX subj_code_idx (subj_code);
Observação: Você tem que fazer o mesmo para a tabela referenciada
grade
na outra chave estrangeira. Demonstração aqui