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

Почему я получаю ошибку MySQL 1022 при создании таблицы с внешними ключами?

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

Why Am I Getting MySQL Error 1022 When Creating a Table with Foreign Keys?

Ошибка MySQL 1022: раскрытие основной причины

Создание таблиц — это фундаментальный аспект проектирования базы данных, но иногда могут возникнуть непредвиденные ошибки. Одной из таких ошибок является печально известная ошибка MySQL 1022, которая часто возникает при попытке создать таблицу с повторяющимися ключами.

В недавнем случае пользователь столкнулся с этой ошибкой при использовании MySQL Workbench для создания таблицы error_reports. . Несмотря на то, что таблица выглядела действительной, MySQL упрямо отказывался подчиняться, ссылаясь на наличие повторяющихся ключей.

Поиск компрометирующего ключа

Невозможно обнаружить проблемный ключ визуально, пользователь кропотливо удалил элементы определения таблицы, в конечном итоге изолировав виновника: ограничение внешнего ключа, ссылающееся на «ошибки». table.

Загадочный случай идентичных внешних ключей

Как ни странно, пользователь без проблем встречал идентичные определения внешних ключей в других таблицах. Однако в этом случае MySQL отказался мириться с дублированием.

Разоблачение конфликта

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

Более понятный путь к созданию таблицы

Чтобы устранить ошибку и успешно создать «errors_reports» table пользователь изменил имя внешнего ключа, вызывающего нарушение. Обеспечив уникальность имен внешних ключей, пользователь удовлетворил соглашение об именах MySQL и подготовил почву для успешного создания таблицы.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3