MySQL - это сделать поле уникальным
У меня есть уже существующую таблицу с полем, которое должно быть уникальным, но не. Я знаю это только потому, что в таблицу была внесена запись, которая имела то же значение, что и другая, уже существующая, запись, и это вызвало проблемы.
Как заставить это поле принимать только уникальные значения?
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 ....