Som MySQL-dokumentation på främmande nycklar indikerar a> :
Så, om du använder innodb, tillåter MySQL dig inte att skapa en främmande nyckel på ett fält som inte är fältet längst till vänster i ett index.
Anledningen är att man i ett index med flera kolumner inte kan slå upp ett värde baserat på ett fält som inte är längst till vänster, därför kan indexet inte användas för att snabbt slå upp värdet för en främmande nyckelkontroll.
Detta beteende hos MySQL-index beskrivs i MySQL-dokumentationen på index för flera kolumner :