Question

Je suis en train de synchroniser les modifications du 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 essaie 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

Toutes les idées ce que cela signifie d'erreur?

Était-ce utile?

La solution

Vous obtiendrez ce message si vous essayez d'ajouter une contrainte avec un nom qui est déjà utilisé ailleurs.

D'après ce après que vous pouvez vérifier votre contrainte comme ceci:

Si la table que vous essayez de créer comprend 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 quelque part d'utilisation:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top