Maison > base de données > tutoriel mysql > Erreur MySQL 1005 et 150 : pourquoi ne puis-je pas créer mes tables ?

Erreur MySQL 1005 et 150 : pourquoi ne puis-je pas créer mes tables ?

Linda Hamilton
Libérer: 2024-11-30 22:30:13
original
249 Les gens l'ont consulté

MySQL Error 1005 & 150: Why Can't I Create My Tables?

Erreur MySql 1005 : impossible de créer une table - Découvrir le coupable de l'erreur 150

Dans une tentative de définir deux tables, spécifiquement ' foo' et 'bar', un message d'erreur perturbe le processus, faisant allusion à une insaisissable « erreur 150 ». Voyageons dans les royaumes de MySQL pour dévoiler la cause cachée et percer le mystère derrière cette énigme de code.

En y regardant de plus près, les deux requêtes semblent dépourvues d'erreurs flagrantes. Cependant, le message d'erreur qui l'accompagne suggère le contraire. En examinant attentivement le message d'erreur, nous tombons sur une référence à l'erreur 150. En plongeant dans les profondeurs de la documentation MySQL, nous tombons par hasard sur le concept de contraintes FOREIGN KEY.

Dans le contexte des contraintes FOREIGN KEY, une note curieuse attire notre attention : "Si vous recréez une table qui a été supprimée, elle doit avoir une définition conforme aux contraintes de clé étrangère qui y font référence." Cette révélation nous incite à nous pencher sur les circonstances qui ont conduit à cette erreur. Il est crucial que la table recréée (« foo » dans notre cas) respecte les noms de colonnes, les types de données et les définitions d'index requis par les contraintes de clé étrangère. Tout écart par rapport à ces spécifications pourrait déclencher l'erreur 1005 de MySQL, accompagnée d'une référence à l'erreur 150.

Compte tenu du message d'erreur et des informations glanées dans la documentation MySQL, nos soupçons se portent sur la possibilité que 'foo' n'a peut-être pas été créé à l'aide du moteur de stockage InnoDB. Un examen de la documentation confirme ce soupçon : "Les deux tables doivent être des tables InnoDB et elles ne doivent pas être des tables TEMPORAIRES."

En s'assurant que 'foo' et 'bar' sont bien des tables InnoDB et en évitant les En utilisant des tables TEMPORAIRES, nous pouvons éliminer cette cause potentielle d'erreur. Il convient de noter que d'autres facteurs pourraient également contribuer à l'erreur 150, mais ce scénario particulier correspond parfaitement aux informations fournies.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal