Error al crear clave externa de MySQL Workbench
-
16-10-2019 - |
Pregunta
Estoy intentando sincronizar los cambios de esquema de MySQL Workbench a mi base de datos. Estoy recibiendo el siguiente error cuando se intenta crear una clave externa:
Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)
Aquí está la declaración que está tratando de ejecutar:
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
Cualquier idea lo que significa este error?
Solución
obtendrá este mensaje si está intentando añadir una restricción con un nombre que ya se utiliza en otro lugar.
De acuerdo con esta posterior puede comprobar su restricción de la siguiente manera:
Si la tabla que está tratando de crear incluye una restricción de clave externa, y que ha proporcionado su propio nombre para esa restricción, recuerde que debe ser único en la base de datos. Ejecutar esta consulta para ver si ese nombre está en uso en alguna parte:
SELECT
constraint_name,
table_name
FROM
information_schema.table_constraints
WHERE
constraint_type = 'FOREIGN KEY'
AND table_schema = DATABASE()
ORDER BY
constraint_name;