MySQL - это сделать поле уникальным


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

Как заставить это поле принимать только уникальные значения?

7 112

7 ответов:

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);

для MySQL 5.7.4 или более поздней версии:

ALTER TABLE mytbl ADD UNIQUE (columnName);

начиная с MySQL 5.7.4, предложение IGNORE для ALTER TABLE удаляется и его использование приводит к ошибке.

Итак, убедитесь, что сначала удалите повторяющиеся записи, поскольку ключевое слово IGNORE больше не поддерживается.

ссылка

просто напишите этот запрос в БД через phpmyadmin.

ALTER TABLE TableName ADD UNIQUE (FieldName)

пример.

ALTER TABLE user ADD UNIQUE (email)

спасибо

Если вы хотите также назвать ограничение, используйте это:

ALTER TABLE myTable
  ADD CONSTRAINT constraintName 
    UNIQUE (columnName);

CREATE UNIQUE INDEX foo ON table_name (field_name)

(перед этим необходимо удалить повторяющиеся значения.)

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);

правильный ответ

вставить часть

INSERT IGNORE INTO mytable ....

самый простой и быстрый способ будет с phpmyadmin таблицу структуры.

USE PHPMYADMIN ADMIN PANEL!

там это на русском языке, но в английской версии должно быть то же самое. Просто нажмите кнопку уникальный. Также оттуда вы можете сделать ваши столбцы первичными или удалить.

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

alter ignore table ioni_groups add unique (group_name);