MySQL - создать существующее поле уникальное
У меня есть уже существующая таблица с полем, которое должно быть уникальным, но это не так. Я знаю только это, потому что запись была сделана в таблицу, которая имела то же значение, что и другая, уже существующая запись, и это вызвало проблемы.
Как я могу сделать это поле только для принятия уникальных значений?
Ответы
Ответ 1
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 больше не поддерживается.
Ссылка
Ответ 2
Просто напишите этот запрос в вашей базе данных phpmyadmin.
ALTER TABLE TableName ADD UNIQUE (FieldName)
Например: ALTER TABLE user ADD UNIQUE (email)
Ответ 3
Если вы также хотите назвать ограничение, используйте это:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
Ответ 4
CREATE UNIQUE INDEX foo ON table_name (field_name)
Вы должны удалить повторяющиеся значения в этом столбце перед выполнением этого sql.
Любое существующее повторяющееся значение в этом столбце приведет к ошибке mysql 1062
Ответ 5
Самый простой и быстрый способ - создать таблицу структуры phpmyadmin.
![USE PHPMYADMIN ADMIN PANEL!]()
Там он на русском языке, но в английской версии должен быть одинаковым. Просто нажмите кнопку "Уникальная". Также оттуда вы можете сделать свои столбцы PRIMARY или DELETE.
Ответ 6
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
- правильный ответ
часть вставки
INSERT IGNORE INTO mytable ....
Ответ 7
Этот код предназначен для решения нашей проблемы, чтобы установить уникальный ключ для существующей таблицы
alter ignore table ioni_groups add unique (group_name);