У меня уже есть таблица с полем, которое должно быть уникальным, но это не так. Я знаю это только потому, что в таблицу была внесена запись, которая имела то же значение, что и другая, уже существующая запись, и это вызвало проблемы.
Как сделать так, чтобы в этом поле принимались только уникальные значения?
mysql
unique-constraint
Лотар
источник
источник
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
ДокументыALTER
как это сделать.ALTER IGNORE
может по-прежнему выдавать ошибку Duplicate на MySQL версии> 5.5 и на InnoDB для безопасности ваших данных. Если вы просто уверены, что сохранение первой из дублированных строк - это правильно, попробуйтеset session old_alter_table=1
. Не забудьте вернуть его обратно. mysqlolyk.wordpress.com/2012/02/18/…Просто напишите этот запрос в вашей базе данных phpmyadmin.
Например:
ALTER TABLE user ADD UNIQUE (email)
источник
Если вы также хотите назвать ограничение, используйте это:
источник
CREATE UNIQUE INDEX foo ON table_name (field_name)
Вы должны удалить повторяющиеся значения в этом столбце перед выполнением этого sql. Любое существующее дублирующее значение в этом столбце приведет к ошибке mysql 1062
источник
Самый простой и быстрый способ будет с таблицей структуры phpmyadmin.
Там это на русском языке, но на английском языке версия должна быть такой же. Просто нажмите уникальную кнопку. Также оттуда вы можете сделать свои столбцы ПЕРВИЧНЫМИ или УДАЛИТЬ.
источник
правильный ответ
часть вставки
источник
Этот код решает нашу проблему, чтобы установить уникальный ключ для существующей таблицы
источник