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?

¿Fue útil?

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top