Narazil jsem na stejný problém s HeidiSQL. Chyba, kterou obdržíte, je velmi záhadná. Můj problém skončil v tom, že sloupec cizího klíče a odkazující sloupec nebyly stejného typu nebo délky.
Sloupec cizího klíče byl SMALLINT(5) UNSIGNED a odkazovaný sloupec byl INT(10) UNSIGNED . Jakmile jsem je udělal oba přesně stejného typu, vytvoření cizího klíče fungovalo perfektně.