Както показва документацията на MySQL за външни ключове :
Така че, ако използвате innodb, MySQL не ви позволява да създадете външен ключ в поле, което не е най-лявото поле в индекс.
Причината е, че в индекс с няколко колони не можете да търсите стойност въз основа на поле, което не е най-лявото, следователно индексът не може да се използва за бързо търсене на стойността за проверка на външен ключ.
Това поведение на MySQL индексите е описано в MySQL документацията на индекси с няколко колони :