MySQL: создание столбца уникально?
У меня есть таблица, которая находится в процессе производства. Я понимаю, что некоторые из столбцов должны быть уникальными. Можно ли войти в phpMyAdmin и изменить эти столбцы, чтобы сделать его уникальным?
ALTER TABLE `foo` ADD UNIQUE ( `bar` )
Ответы
Ответ 1
- У вас нет дубликатов → будет применять ключ без проблем
- У вас есть дубликаты → выдаст сообщение об ошибке, ничего не случилось с вашими данными
- Все уникально, за исключением нескольких строк с NULL в них, по-прежнему применяется уникальное ограничение, поскольку NULL не проверяется при проверке уникальных значений (вы можете иметь всю таблицу со значением NULL в уникальном поле без какого-либо сообщения об ошибке).
Еще одна вещь, если у вас есть база данных prod, у вас также должен быть Dev DB, который вы можете протестировать без страха, правильно?
Ответ 2
Выполните следующие шаги, чтобы применить уникальное значение столбца на панели phpmyadmin:
Перейти к структуре таблицы. Нажмите на уникальное ключевое слово, как показано ниже -
![enter image description here]()
Нажмите на ОК из окна подтверждения -
![enter image description here]()
Будет применено ограничение уникального значения для столбца. Или вы можете выполнить запрос MySQL:
Пользователь ALTER TABLE ADD UNIQUE (электронная почта);
Ответ 3
Это будет проблемой только в том случае, если ранее существовавшие значения в таблице не уникальны, иначе я не думаю, что возникнут какие-либо проблемы.
Ответ 4
Если в этих столбцах уже есть несколько повторяющихся значений, это приведет к возникновению ошибки. Если в этих столбцах нет одинаковых значений, тогда все будет в порядке.
Ответ 5
У меня была эта проблема, и мои ценности не были уникальными. Я также не смог найти простой способ отредактировать эту проблему в PHPMyAdmin. Вот как я это решил:
-
Я нажал на таблицу, мне нужно было обновить
-
Я экспортировал таблицу, изменив ее на экспорт CSV, а затем отредактировал ее вручную, чтобы обновить неуникальные значения.
- Убедившись, что я все еще в таблице, которую я экспортировал (потому что я хотел сохранить заголовки нетронутыми), я импортировал свой недавно сохраненный CSV
Надеюсь, это сэкономит кому-то время в будущем.