Från FOREIGN KEY
Begränsningar
Om du återskapar en tabell som har tappats måste den ha en definition som överensstämmer med de främmande nyckelbegränsningarna som refererar till den. Den måste ha rätt kolumnnamn och -typer, och den måste ha index på sina refererade nycklar, som nämnts tidigare. Om dessa inte är uppfyllda returnerar MySQL felnummer 1005 och hänvisar till fel150 i felmeddelandet.
Min misstanke är att det beror på att du inte skapade foo
som InnoDB, eftersom allt annat ser OK ut.
Edit:från samma sida -
Båda tabellerna måste vara InnoDB-tabeller och de får inte vara TEMPORARY tabeller.