Maison >base de données >tutoriel mysql >Erreur MySQL 1005 : une clé primaire peut-elle être une clé étrangère et comment résoudre les problèmes de contrainte de clé étrangère ?

Erreur MySQL 1005 : une clé primaire peut-elle être une clé étrangère et comment résoudre les problèmes de contrainte de clé étrangère ?

DDD
DDDoriginal
2024-12-05 20:31:11303parcourir

MySQL Error 1005: Can a Primary Key Be a Foreign Key, and How Do I Fix Foreign Key Constraint Issues?

Erreur de clé étrangère MySQL 1005 : clé primaire comme clé étrangère

Une clé primaire peut-elle également être une clé étrangère ?

Non, il n'est pas possible de définir une clé primaire comme clé étrangère dans MySQL. Une clé primaire identifie de manière unique les enregistrements d'une table, tandis qu'une clé étrangère fait référence aux enregistrements d'une autre table. La combinaison de ces deux rôles entraînerait des contraintes circulaires.

Code d'erreur 1005 : Impossible de créer une table

L'erreur rencontrée : "Erreur 1005 : Impossible de créer la table 'dbimmmobili.condoni' (errno : 150)", indique que MySQL ne peut pas créer la table en raison d'un problème avec la clé étrangère contraintes.

Index manquant sur la table référencée

Le message "Erreur dans la contrainte de clé étrangère de la table dbimmmobili/valutazionimercato" suggère qu'un index manquant est à l'origine du problème. MySQL nécessite que la table référencée ait un index couvrant les colonnes spécifiées dans la clé étrangère.

Solution

Créer un index sur la table référencée (dbimmmobili.Immobile) pour les colonnes (ComuneImmobile, ViaImmobile , CivicoImmobile, InternoImmobile):

CREATE INDEX ix_ComuneViaCivicoInterno ON dbimmobili.Immobile (ComuneImmobile, ViaImmobile, CivicoImmobile, InternoImmobile);

Cet index garantira que MySQL puisse trouver efficacement les enregistrements correspondants dans le Table dbimmmobili.Immobile lorsque la table dbimmmobili.condoni les réfé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