Maison > base de données > tutoriel mysql > Une clé primaire peut-elle également servir de clé étrangère et comment corriger l'erreur MySQL 1005 ?

Une clé primaire peut-elle également servir de clé étrangère et comment corriger l'erreur MySQL 1005 ?

DDD
Libérer: 2024-12-06 02:22:15
original
269 Les gens l'ont consulté

Can a Primary Key Also Serve as a Foreign Key, and How Do I Fix MySQL Error 1005?

Erreur de clé étrangère MySQL 1005 errno 150 : résolution de la clé primaire en tant que problème de clé étrangère

Les contraintes de clé étrangère MySQL renforcent l'intégrité des données en référençant les champs dans d'autres tableaux. Cependant, lorsque vous utilisez une clé primaire comme clé étrangère, vous pouvez rencontrer l'erreur 1005. Cette erreur se produit lorsque la table référencée ne dispose pas d'un index utilisable pour les colonnes référencées.

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

Oui, une clé primaire peut aussi être une clé étrangère. Il s'agit d'une pratique courante dans la conception de bases de données, car elle garantit que la table de référencement contient uniquement des données valides et maintient l'intégrité référentielle des relations.

Résolution de l'erreur 1005

Pour résoudre l'erreur 1005, vous devez créer un index sur les colonnes référencées dans la table référencée. Cet index permet à MySQL de retrouver efficacement les enregistrements référencés. Voici comment vous pouvez résoudre le problème dans votre cas spécifique :

ALTER TABLE Immobile ADD PRIMARY KEY (`ComuneImmobile`, `ViaImmobile`, `CivicoImmobile`, `InternoImmobile`);
Copier après la connexion

En ajoutant la clé primaire, les colonnes seront automatiquement indexées. Cela garantit que les clés étrangères des autres tables (Condoni) peuvent référencer les enregistrements corrects dans la table Immobile.

Solution alternative

Si vous créez un index sur la table principale key n'est pas réalisable, vous pouvez utiliser une clé étrangère composite à la place. Cela signifie utiliser plusieurs colonnes de la clé primaire comme références de clé étrangère. Dans ce cas, vous créeriez les clés étrangères suivantes :

ALTER TABLE Condoni ADD FOREIGN KEY (`ComuneImmobile`, `ViaImmobile`) REFERENCES Immobile (`ComuneImmobile`, `ViaImmobile`);
Copier après la connexion

Cette clé étrangère composite renforcerait l'intégrité référentielle sans avoir besoin d'un index sur la clé primaire.

En les implémentant solutions, vous pouvez établir les relations souhaitées entre vos tables de base de données et éviter l'erreur 1005 lors de l'utilisation d'une clé primaire comme référence de clé étrangère.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal