2017-09-29 7 views
0

Je ne suis pas tellement dans la base de données et je trouve un problème en essayant d'ajouter un FK (en utilisant un IDE) dans une base de données MySql.Pourquoi j'obtiens ce message d'erreur en essayant d'ajouter un FK? # 23000Ne pas écrire; clé en double dans la table '# sql-482_1ede'

Après que j'ajouter le FK j'obtiens le message d'erreur suivant:

#23000Can't write; duplicate key in table '#sql-482_1ede' 
while executing: 
ALTER TABLE Localization ADD CONSTRAINT FK_Localization_Country FOREIGN KEY (country_id) 
    REFERENCES Country (id) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION 

Le problème est que je n'ai pas ce FK (je l'avais dans le passé, mais je l'ai enlevé l'ensemble de la table de localisation et je recrée il). Pourquoi est-ce que j'obtiens ce message d'erreur? Comment puis-je essayer de résoudre ce problème?

+2

Copie possible de https://stackoverflow.com/questions/23954131/mysql-error-1022-23000-cant-write-duplicate-key-in-table-sql-2b8-2/23954287, essayez de changer le nom fk –

Répondre

0

Une clé étrangère doit généralement référencer des clés dans la table maître qui ont des données uniques . Sinon, le système de base de données n'aurait aucune chance de savoir quelle ligne de la table esclave appartient à quelle ligne de la table principale.

Il semble donc que vous ayez le même id dans votre table principale (Country) plusieurs fois. Vous devrez résoudre cette situation avant de pouvoir ajouter cette clé étrangère.

0

Résolu par moi-même. Le problème était que j'ai une autre table qui contient une contrainte avec le même nom et il semble que je ne peux pas avoir plusieurs contraintes avec le même nom sur des tables différentes