Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur MySQL 1005 : « Impossible de créer une table » ?

Pourquoi est-ce que j'obtiens l'erreur MySQL 1005 : « Impossible de créer une table » ?

DDD
DDDoriginal
2024-12-04 09:27:12750parcourir

Why Am I Getting MySQL Error 1005:

Code d'erreur 1005 : Comprendre le problème « Impossible de créer une table »

Lors de la tentative d'exécution d'une modification de base de données, le code d'erreur 1005 peut survenir , accompagné du message "Impossible de créer la table '...'" (errno : 150). Cette erreur empêche la création d'une nouvelle table ou la modification d'une table existante.

Identification de la cause première

La cause première de cette erreur réside généralement dans une erreur primaire incorrecte. références clés. Bien que les solutions trouvées en ligne puissent ne pas résoudre le problème, plusieurs causes connues peuvent déclencher cette erreur :

  1. Types ou tailles de données incompatibles : Clés primaires dans différentes tables impliquées dans un La relation de clé étrangère doit correspondre exactement en termes de type et de taille de données. Par exemple, si l'un est déclaré comme INT(10), l'autre doit également être INT, et non BIGINT ou SMALLINT.
  2. Index manquant ou clé non primaire : Lié à une clé étrangère les champs nécessitent un index correspondant ou doivent être la clé primaire de la table référencée.
  3. Clé étrangère en double Nom : Le nom de la clé étrangère doit être unique au sein de la base de données. Pensez à ajouter des identifiants uniques au nom de la clé étrangère pour exclure cette possibilité.
  4. Incompatibilité avec les tables MyISAM : Les clés étrangères ne sont pas prises en charge dans les tables MyISAM. Assurez-vous que les deux tables impliquées dans la relation utilisent le moteur InnoDB.
  5. NOT NULL Contrainte sur la colonne de clé étrangère : Si une cascade ON DELETE SET NULL est spécifiée, la colonne de clé étrangère ne peut pas être défini sur NOT NULL.
  6. Incompatibilités Charset et Collate : Les attributs Charset et Collate pour les clés primaires doivent correspondre aux niveaux de la table et du champ.
  7. Restrictions relatives aux valeurs par défaut : Évitez de définir une valeur par défaut (par exemple, default=0) sur une colonne de clé étrangère.
  8. Limitations de l'index : Les champs clés utilisés dans les clés composites nécessitent des index individuels pour les références de clé étrangère, même s'ils ont des index dans le cadre du composite. clé.
  9. Erreurs de syntaxe ou de dénomination : Examinez attentivement l'instruction ALTER pour détecter les erreurs de syntaxe ou les fautes de frappe dans les noms de champs.
  10. Limite de nom dépassée : Étranger les noms de clés ne peuvent pas dépasser 64 caractères.

Supplémentaires Ressources

Pour plus d'informations sur ce code d'erreur spécifique, reportez-vous à la ressource suivante :

  • Erreur MySQL numéro 1005 Impossible de créer une table

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