Pokud znovu vytvoříte tabulku, která byla odstraněna, musí mít definici, která odpovídá omezením cizích klíčů, které na ni odkazují. Musí mít správné názvy a typy sloupců a musí mít indexy na odkazovaných klíčích, jak bylo uvedeno dříve. Pokud tyto nejsou splněny, MySQL vrátí chybu číslo 1005 a odkazuje na chybu 150 v chybové zprávě.
Mé podezření je to proto, že jste nevytvořili foo
jako InnoDB, protože všechno ostatní vypadá OK.
Edit:ze stejné stránky -
Obě tabulky musí být tabulky InnoDB a nesmí to být TEMPORARY tabulky.