Измените таблицу в реальном времени, чтобы сделать ключ неповторимым
Я видел некоторые другие вопросы, связанные с этим, но они не были MySQL.
База данных - это живая база данных, поэтому я не хочу удалять и воссоздавать таблицу. Я просто хочу, чтобы столбец больше не был уникальным, что менее разрешительно по своей природе, поэтому оно не должно вызывать никаких проблем.
Ответы
Ответ 1
Если ваш столбец был определен уникально с помощью предложения UNIQUE
, используйте:
ALTER TABLE mytable DROP INDEX constraint_name
или, если ваше ограничение было неявно названо,
ALTER TABLE mytable DROP INDEX column_name
Если он был определен уникально с помощью предложения PRIMARY KEY
, используйте:
ALTER TABLE mytable DROP PRIMARY KEY
Обратите внимание, что если ваша таблица InnoDB
, то отбрасывание PRIMARY KEY
приведет к неявному воссозданию вашей таблицы и восстановлению всех индексов, что заблокирует таблицу и может сделать ее недоступной в течение довольно длительного времени.
Ответ 2
Просто DROP
уникальный индекс. Не должно быть проблем с тем, что это живая БД. Если это действительно большая таблица, вы можете временно заблокировать некоторые запросы при удалении индекса. Но это должно произойти только в том случае, если вы добавляете индекс.
ALTER TABLE table_name DROP INDEX index_name;
Ответ 3
В некоторых случаях разработчик (вы), возможно, не захочет его удалить, а просто изменит "уникальность" на "не-уникальный".
Шаги:
-
Перейдите в таблицу в контексте, где вы хотите внести изменения
-
Нажмите вкладку "Структура" (в основном рядом с "Обзор" )
- Найдите ссылку "+ Indexes", только под столбцами. Да... теперь щелкните по нему.
- Теперь вы можете увидеть все "Индексы", и теперь вы можете нажать кнопку "DROP" или ссылку для изменения.
Ответ был найден здесь:
Источник: https://forums.phpfreaks.com/topic/164827-phpmyadmin-how-to-make-not-unique/