Ten sam problem natknąłem się na HeidiSQL. Otrzymany błąd jest bardzo tajemniczy. Mój problem polegał na tym, że kolumna klucza obcego i kolumna odniesienia nie były tego samego typu lub długości.
Kolumna klucza obcego była SMALLINT(5) UNSIGNED
a kolumna odniesienia była INT(10) UNSIGNED
. Kiedy stworzyłem je dokładnie tego samego typu, tworzenie klucza obcego zadziałało idealnie.