MySQL: сделать столбец уникальным?
У меня есть таблица, которая находится в производстве. Я понимаю, что некоторые колонки должны быть уникальными. Безопасно ли входить в phpMyAdmin и изменять эти столбцы, чтобы сделать его уникальным?
ALTER TABLE `foo` ADD UNIQUE ( `bar` )
4 ответов
- у вас нет дубликатов -> будет применять ключ без проблем
- у вас есть дубликаты -> выдаст сообщение об ошибке, ничего не случилось с вашими данными
- все уникально, за исключением нескольких строк с NULL в них, уникальное ограничение все еще применяется, поскольку NULL не проверяется при проверке уникальных значений (вы можете иметь всю таблицу с нулевым значением в уникальном поле без какого-либо сообщения об ошибке).
еще одна вещь, если у вас есть прод DB, у вас также должен быть dev DB, который вы можете проверить без страха, верно?
выполните следующие действия, чтобы применить уникальное значение столбца из панели phpmyadmin:
перейдите к структуре таблицы. Нажмите на уникальное ключевое слово, как показано ниже -
нажмите на ok из окна подтверждения -
будет применяться ограничение уникального значения для столбца. Или вы можете запустить mysql query:
ALTER TABLE user ADD UNIQUE(email);
Это будет проблемой, только если ранее существующие значения в таблице не уникальны, иначе я не думаю, что будет какая-либо проблема.
Если в этих столбцах уже есть несколько повторяющихся значений, это приведет к ошибке. Если в этих столбцах нет повторяющихся значений, то все будет в порядке.