Ik kwam hetzelfde probleem tegen met HeidiSQL. De foutmelding die je krijgt is erg cryptisch. Mijn probleem was uiteindelijk dat de refererende-sleutelkolom en de verwijzende kolom niet van hetzelfde type of dezelfde lengte waren.
De kolom met een vreemde sleutel was SMALLINT(5) UNSIGNED
en de kolom waarnaar wordt verwezen was INT(10) UNSIGNED
. Toen ik ze allebei exact hetzelfde type had gemaakt, werkte het maken van een externe sleutel perfect.