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.
ALTER
tego.
ALTER IGNORE
moż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