Erreur MySql 150 : contraintes de clé étrangère
Lors de l'exécution de requêtes pour créer deux tables, l'une comme référence pour l'autre, un message d'erreur indique : "ERREUR 1005 (HY000) : Impossible de créer la table './test/bar.frm' (errno : 150)."
Selon la documentation de MySQL sur les contraintes de clé étrangère, l'erreur se produit lorsqu'une table recréée référencée par une contrainte de clé étrangère n'adhère pas à sa définition. Plus précisément, la table recréée doit :
Dans ce cas, la documentation suggère que le problème peut être que l'une des tables, « foo », n'a pas été créée en tant que table InnoDB. En effet, les contraintes de clé étrangère ne peuvent être établies qu'entre les tables InnoDB qui ne sont pas TEMPORAIRES.
La documentation indique :
Both tables must be InnoDB tables and they must not be TEMPORARY tables.
Par conséquent, pour résoudre l'erreur, il est recommandé de s'assurer que la table 'foo' est créée en tant que table InnoDB avant de tenter d'établir la contrainte de clé étrangère dans la table 'bar'.
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!