Maison >base de données >tutoriel mysql >Comment réparer l'erreur MySQL 150 : incompatibilité de clé étrangère ?

Comment réparer l'erreur MySQL 150 : incompatibilité de clé étrangère ?

DDD
DDDoriginal
2024-11-26 16:01:17399parcourir

How to Fix MySQL Error 150: Foreign Key Mismatch?

Dépannage de l'erreur MySQL 150 : incompatibilité de clé étrangère

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.

Description de l'erreur

Message d'erreur :

ERROR 1005 (HY000): Can't create table './test/bar.frm' (errno: 150)

Cause possible

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.

Solution

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn