Измените таблицу в реальном времени, чтобы сделать ключ неповторимым

Я видел некоторые другие вопросы, связанные с этим, но они не были 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/