Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens une erreur « Impossible de créer une table (errno : 150) » dans MySQL lors de l'importation d'un fichier .sql ?

Pourquoi est-ce que j'obtiens une erreur « Impossible de créer une table (errno : 150) » dans MySQL lors de l'importation d'un fichier .sql ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-20 02:22:09481parcourir

Why Am I Getting a

Erreur MySQL : "Impossible de créer une table (errno : 150)" - Guide de dépannage

Problème :

L'importation d'un fichier SQL contenant des définitions de table échoue lors de la création de la table, ce qui entraîne l'erreur « Impossible de créer la table './dbname/data.frm' (errno : 150). »

Cause fondamentale :

Cette erreur, comme détaillé dans la documentation MySQL FOREIGN KEY Constraints, se produit lorsque la recréation d'une table entre en conflit avec les contraintes de clé étrangère existantes qui y font référence. La table recréée doit correspondre précisément à l'original en termes de :

  • Noms de colonnes et types de données : Une correspondance exacte est cruciale.
  • Index sur les clés référencées : Tous les index nécessaires sur les colonnes impliquées dans les relations de clé étrangère doivent être présents.

Résolution :

Pour résoudre ce problème, vérifiez méticuleusement les éléments suivants :

  • Cohérence des colonnes : Vérifiez que les noms de colonnes et les types de données dans la définition de table de votre fichier SQL sont identiques à ceux de la table référencée par la contrainte de clé étrangère. Même des écarts mineurs (par exemple, des jeux de caractères différents) peuvent déclencher cette erreur.
  • Intégrité de l'index : Recréez tous les index sur les colonnes impliquées dans les relations de clé étrangère. Assurez-vous que ces index existent et correspondent aux spécifications d'index de la table d'origine.

Une fois que vous avez confirmé ces aspects, réessayez l'import SQL. Si le problème persiste, examinez attentivement l'instruction CREATE TABLE dans votre fichier SQL pour détecter toute incohérence.

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