J'essaie de synchroniser les changements de schéma de MySQL Workbench à ma base de données. Je reçois l'erreur suivante quand il essaie de créer une clé étrangère:
Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)
Voici la déclaration qu'il tente d'exécuter:
ALTER TABLE `tomato`.`ing_allergy_ingredient`
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
Des idées ce que cette erreur signifie?
Vous obtiendrez ce message si vous essayez d'ajouter une contrainte avec un nom déjà utilisé ailleurs.
Selon cela POST Vous pouvez vérifier votre contrainte comme celle-ci:
Si la table que vous essayez de créer inclut une contrainte de clé étrangère et que vous avez fourni votre propre nom pour cette contrainte, rappelez-vous qu'il doit être unique dans la base de données. Exécutez cette requête pour voir si ce nom est utilisé quelque part:
SELECT
constraint_name,
table_name
FROM
information_schema.table_constraints
WHERE
constraint_type = 'FOREIGN KEY'
AND table_schema = DATABASE()
ORDER BY
constraint_name;