Maison > base de données > tutoriel mysql > Pourquoi MySQL me renvoie-t-il l'erreur « Impossible d'ajouter une contrainte de clé étrangère » ?

Pourquoi MySQL me renvoie-t-il l'erreur « Impossible d'ajouter une contrainte de clé étrangère » ?

Susan Sarandon
Libérer: 2025-01-18 20:26:13
original
687 Les gens l'ont consulté

Why is MySQL Giving Me a

Résoudre les problèmes de contraintes de clé étrangère MySQL

Créer des relations de clé étrangère dans MySQL peut parfois conduire à l'erreur frustrante :

<code>ERROR 1215 (HY000): Cannot add foreign key constraint</code>
Copier après la connexion

Ce message signifie un problème lors de l'établissement du lien de clé étrangère entre les tables. Explorons les causes et solutions communes.

Différences de types de données :

Confirmez que les types de données des colonnes enfant et parent sont identiques. Par exemple, si la colonne parent est INT, la colonne enfant correspondante doit également être INT. Toute incompatibilité empêchera l'ajout de la contrainte.

Séquence de création de table :

Bien que les meilleures pratiques imposent de créer des tables parents avant les tables enfants, vous pouvez contourner temporairement cette limitation. Utilisez la commande suivante avant de créer vos tables :

<code>SET FOREIGN_KEY_CHECKS=0;</code>
Copier après la connexion

Cela désactive les vérifications de clés étrangères, permettant un ordre de création de table flexible. N'oubliez pas de réactiver les contrôles par la suite en utilisant SET FOREIGN_KEY_CHECKS=1;

Identifier le problème avec <code>SHOW ENGINE INNODB STATUS;</code> :

Pour une identification précise des erreurs, exécutez :

<code>SHOW ENGINE INNODB STATUS;</code>
Copier après la connexion

Examinez la section LATEST FOREIGN KEY ERROR pour obtenir des détails spécifiques sur la contrainte ayant échoué. Cela fournit des informations cruciales pour un dépannage ciblé.

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