Odpowiedzi:
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
MySQL 5.7.4 lub nowszy:
ALTER TABLE mytbl ADD UNIQUE (columnName);
Począwszy od MySQL 5.7.4, klauzula IGNORE dla ALTER TABLE została usunięta, a jej użycie powoduje błąd.
Dlatego upewnij się, że najpierw usunąłeś zduplikowane wpisy, ponieważ słowo kluczowe IGNORE nie jest już obsługiwane.
ALTERtego.
ALTER IGNOREmoże nadal powodować błąd Duplicate na MySQL w wersji> 5.5 i na InnoDB ze względu na bezpieczeństwo danych. Jeśli jesteś tylko pewien, że zachowanie pierwszego ze zduplikowanych wierszy jest właściwe, spróbuj set session old_alter_table=1. Nie zapomnij go odłożyć. mysqlolyk.wordpress.com/2012/02/18/…
Po prostu zapisz to zapytanie w swoim db phpmyadmin.
ALTER TABLE TableName ADD UNIQUE (FieldName)
Na przykład: ALTER TABLE user ADD UNIQUE (email)
Jeśli chcesz również nazwać ograniczenie, użyj tego:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
Musisz usunąć zduplikowane wartości z tej kolumny przed wykonaniem tego sql. Każda istniejąca zduplikowana wartość w tej kolumnie doprowadzi do błędu mysql 1062
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
to właściwa odpowiedź
część wkładana
INSERT IGNORE INTO mytable ....
Ten kod ma rozwiązać nasz problem polegający na ustawieniu unikalnego klucza dla istniejącej tabeli
alter ignore table ioni_groups add unique (group_name);
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.Dokumenty