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. Вот как я это решил:

  1. Я нажал на таблицу, мне нужно было обновить

  2. Я экспортировал таблицу, изменив ее на экспорт CSV, а затем отредактировал ее вручную, чтобы обновить неуникальные значения.

  3. Убедившись, что я все еще в таблице, которую я экспортировал (потому что я хотел сохранить заголовки нетронутыми), я импортировал свой недавно сохраненный CSV

Надеюсь, это сэкономит кому-то время в будущем.