«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я получаю ошибку MySQL 1022: «Невозможно записать; дублирующийся ключ в таблице». Хотя у меня только один ключ?

Почему я получаю ошибку MySQL 1022: «Невозможно записать; дублирующийся ключ в таблице». Хотя у меня только один ключ?

Опубликовано 7 ноября 2024 г.
Просматривать:319

 Why Am I Getting MySQL Error 1022: \

Ошибка MySQL 1022: конфликт имен внешних ключей

При попытке создать таблицу с помощью MySQL вы сталкиваетесь с ошибкой 1022: «Невозможно записать; повторяющийся ключ в таблице». Особенность заключается в том, что таблица определяет только один ключ, но ошибка сохраняется.

В ходе расследования выяснилось, что конкретный фрагмент в определении таблицы вызывает ошибку:

CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,

Хотя аналогичные определения внешнего ключа существуют в других таблицах без проблем, проблема заключается в имени внешнего ключа: error_id.

Основная причина:

Проблема возникает из-за того, что имя внешнего ключа не может совпадать с именем другого внешнего ключа во всей модели базы данных. Это означает, что если две таблицы ссылаются на одну и ту же таблицу, внешние ключи в каждой таблице должны иметь уникальные имена.

Решение:

Чтобы устранить ошибку, просто укажите Внешний ключ, о котором идет речь, имеет другое имя. Например, вы можете назвать его fk_error_id. Это отличит его от любого другого внешнего ключа в модели и позволит MySQL успешно создать таблицу.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3