MySQL: сделать столбец уникальным?

У меня есть таблица, которая находится в производстве. Я понимаю, что некоторые колонки должны быть уникальными. Безопасно ли входить в phpMyAdmin и изменять эти столбцы, чтобы сделать его уникальным?

ALTER TABLE  `foo` ADD UNIQUE ( `bar` )

4 ответов


  1. у вас нет дубликатов -> будет применять ключ без проблем
  2. у вас есть дубликаты -> выдаст сообщение об ошибке, ничего не случилось с вашими данными
  3. все уникально, за исключением нескольких строк с NULL в них, уникальное ограничение все еще применяется, поскольку NULL не проверяется при проверке уникальных значений (вы можете иметь всю таблицу с нулевым значением в уникальном поле без какого-либо сообщения об ошибке).

еще одна вещь, если у вас есть прод DB, у вас также должен быть dev DB, который вы можете проверить без страха, верно?


выполните следующие действия, чтобы применить уникальное значение столбца из панели phpmyadmin:

перейдите к структуре таблицы. Нажмите на уникальное ключевое слово, как показано ниже -

enter image description here

нажмите на ok из окна подтверждения -

enter image description here

будет применяться ограничение уникального значения для столбца. Или вы можете запустить mysql query:

ALTER TABLE user ADD UNIQUE(email);


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


Если в этих столбцах уже есть несколько повторяющихся значений, это приведет к ошибке. Если в этих столбцах нет повторяющихся значений, то все будет в порядке.