Ошибка создания иностранного ключа из MySQL Workbench
-
16-10-2019 - |
Вопрос
Я пытаюсь синхронизировать изменения схемы от MySQL Workbench в мою базу данных. Я получаю следующую ошибку, когда она пытается создать иностранный ключ:
Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)
Вот утверждение, которое он пытается выполнить:
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
Есть идеи, что означает эта ошибка?
Решение
Вы получите это сообщение, если пытаетесь добавить ограничение с именем, которое уже используется где -то еще.
Согласно этому почта Вы можете проверить свое ограничение так:
Если таблица, которую вы пытаетесь создать, включает ограничение внешнего ключа, и вы предоставили свое собственное имя для этого ограничения, помните, что она должна быть уникальной в базе данных. Запустите этот запрос, чтобы увидеть, используется ли это имя где -то:
SELECT
constraint_name,
table_name
FROM
information_schema.table_constraints
WHERE
constraint_type = 'FOREIGN KEY'
AND table_schema = DATABASE()
ORDER BY
constraint_name;
Не связан с dba.stackexchange