Ошибка MySQL 1022: раскрытие основной причины
Создание таблиц — это фундаментальный аспект проектирования базы данных, но иногда могут возникнуть непредвиденные ошибки. Одной из таких ошибок является печально известная ошибка MySQL 1022, которая часто возникает при попытке создать таблицу с повторяющимися ключами.
В недавнем случае пользователь столкнулся с этой ошибкой при использовании MySQL Workbench для создания таблицы error_reports. . Несмотря на то, что таблица выглядела действительной, MySQL упрямо отказывался подчиняться, ссылаясь на наличие повторяющихся ключей.
Поиск компрометирующего ключа
Невозможно обнаружить проблемный ключ визуально, пользователь кропотливо удалил элементы определения таблицы, в конечном итоге изолировав виновника: ограничение внешнего ключа, ссылающееся на «ошибки». table.
Загадочный случай идентичных внешних ключей
Как ни странно, пользователь без проблем встречал идентичные определения внешних ключей в других таблицах. Однако в этом случае MySQL отказался мириться с дублированием.
Разоблачение конфликта
Решение этой запутанной дилеммы лежит в концепции соглашений об именах внешних ключей. Оказывается, внешние ключи не могут иметь одно и то же имя в базе данных. Это связано с тем, что MySQL использует имена внешних ключей, чтобы определить, на какую таблицу и столбец указывает ссылка. Назначение одного и того же имени нескольким внешним ключам может привести к путанице и двусмысленности.
Более понятный путь к созданию таблицы
Чтобы устранить ошибку и успешно создать «errors_reports» table пользователь изменил имя внешнего ключа, вызывающего нарушение. Обеспечив уникальность имен внешних ключей, пользователь удовлетворил соглашение об именах MySQL и подготовил почву для успешного создания таблицы.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3