Maison > base de données > tutoriel mysql > Comment résoudre les erreurs de contrainte de clé étrangère MySQL lors de l'ajout d'une clé étrangère ?

Comment résoudre les erreurs de contrainte de clé étrangère MySQL lors de l'ajout d'une clé étrangère ?

DDD
Libérer: 2024-11-30 15:58:14
original
1072 Les gens l'ont consulté

How to Resolve MySQL Foreign Key Constraint Errors When Adding a Foreign Key?

Correction de l'erreur d'ajout de clé étrangère dans la table MySQL

Problème :

Vous souhaitez ajouter une clé étrangère à une clé étrangère existante Table MySQL mais rencontre ce qui suit erreurs :

***Error Code: 1005. Can't create table 'mytable.#sql-7fb1_7d3a' (errno: 150)***
***Error in foreign key constraint of table mytable.#sql-7fb1_7d3a:***
FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL:
Copier après la connexion

Résolution :

Pour résoudre l'erreur, assurez-vous que la table à laquelle vous faites référence existe réellement et possède les noms de colonnes corrects. L'erreur indique que la table Sprache n'existe pas ou n'a pas de colonne nommée ID.

Requête révisée :

ALTER TABLE katalog
ADD CONSTRAINT fk_katalog_sprache
FOREIGN KEY (`Sprache`)
REFERENCES Sprache(ID)
ON DELETE SET NULL
ON UPDATE SET NULL;
Copier après la connexion

Remarques supplémentaires :

  • Les deux tables (katalog et Sprache) doivent être InnoDB et avoir les types de données correspondants (INT(11) et NOT NULL) pour les colonnes référencées.
  • La colonne de clé étrangère (Sprache) dans la table catalogue ne doit contenir aucune valeur NULL avant d'ajouter la contrainte.
  • La colonne référencée La colonne (ID dans ce cas) de la table Sprache doit être la clé primaire.

Ajout général de clé étrangère Syntaxe :

ALTER TABLE <table_name>
ADD FOREIGN KEY (<column_name>)
REFERENCES <foreign_table_name>(<foreign_column_name>);
Copier après la connexion

En suivant ces instructions révisées, vous devriez pouvoir ajouter avec succès la clé étrangère à la table du catalogue dans MySQL.

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 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