Lorsque vous essayez de créer une contrainte de clé étrangère dans MySQL, des rencontres peuvent survenir. L'une de ces erreurs est l'erreur 150, qui se produit en cas de non-concordance entre la définition de la clé étrangère et la table référencée.
Message d'erreur :
ERROR 1005 (HY000): Can't create table './test/bar.frm' (errno: 150)
Comme documenté dans la documentation MySQL sur les contraintes de clé étrangère, les clés étrangères les références clés nécessitent le strict respect de règles spécifiques. Une exigence cruciale est que la table de référencement et la table référencée doivent être des tables InnoDB.
Both tables must be InnoDB tables and they must not be TEMPORARY tables.
Pour résoudre cette erreur, vérifiez que la table de référencement (barre) et la Les tables référencées (foo) sont définies comme des tables InnoDB. Si ce n'est pas le cas, modifiez-les pour utiliser le moteur InnoDB.
ALTER TABLE bar ENGINE=InnoDB; ALTER TABLE foo ENGINE=InnoDB;
Après avoir effectué cette modification, essayez de recréer la contrainte de clé étrangère entre les deux tables. Si le problème persiste, consultez à nouveau la documentation MySQL ou demandez de l'aide sur les forums pertinents ou auprès d'experts MySQL.
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!