Von FOREIGN KEY
Einschränkungen
Wenn Sie eine gelöschte Tabelle neu erstellen, muss sie über eine Definition verfügen, die den Fremdschlüsseleinschränkungen entspricht, die auf sie verweisen. Es muss die richtigen Spaltennamen und -typen haben, und es muss Indizes für die referenzierten Schlüssel haben, wie bereits erwähnt. Wenn diese nicht erfüllt sind, gibt MySQL die Fehlernummer 1005 zurück und verweist auf Fehler 150 in der Fehlermeldung.
Mein Verdacht liegt daran, dass Sie foo
nicht erstellt haben als InnoDB, da alles andere OK aussieht.
Bearbeiten:von derselben Seite -
Beide Tabellen müssen InnoDB-Tabellen sein und dürfen keine TEMPORARY-Tabellen sein.