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

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