Erreur 150 rencontrée par MySql : problèmes de déchiffrement des clés étrangères
Lorsqu'ils tentent de créer une table avec une clé étrangère faisant référence à une autre table, les développeurs peuvent rencontrer erreur 150, les déroutant avec son message énigmatique. Cet article examine la cause sous-jacente de cette erreur et propose une solution.
Comme détaillé dans la documentation MySQL, l'erreur 150 se produit lorsque la recréation d'une table qui a été précédemment supprimée ne respecte pas les contraintes de clé étrangère qui y font référence. Plus précisément, la table doit conserver les mêmes noms de colonnes, types et index sur les clés référencées que lors de sa création initiale.
Pour résoudre ce problème, assurez-vous que la table contenant la clé étrangère (dans ce cas, "foo") est également créé en tant que table InnoDB. Selon la documentation MySQL, les deux tables impliquées dans une relation de clé étrangère doivent être des tables InnoDB et non des tables temporaires.
Par conséquent, pour corriger l'erreur, essayez de recréer la table "foo" en tant que table InnoDB en utilisant ce qui suit requête :
CREATE TABLE foo ( id INT PRIMARY KEY ) ENGINE = InnoDB;
Une fois la table "foo" créée en tant que table InnoDB, vous devriez pouvoir créer avec succès la table "bar" avec la référence de clé étrangère sans je rencontre l'erreur 150.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!