Si vous recréez une table qui a été supprimée, elle doit avoir une définition conforme aux contraintes de clé étrangère la référençant. Il doit avoir les bons noms et types de colonne, et il doit avoir des index sur les clés référencées, comme indiqué précédemment. Si ceux-ci ne sont pas satisfaits, MySQL renvoie le numéro d'erreur 1005 et fait référence à l'erreur 150 dans le message d'erreur.
Mes soupçons c'est que c'est parce que vous n'avez pas créé foo
comme InnoDB, car tout le reste semble OK.
Edit :à partir de la même page -
Les deux tables doivent être des tables InnoDB et ne doivent pas être des tables TEMPORARY.