MySQL: crea un campo esistente unico

Ho una tabella già esistente con un campo che dovrebbe essere unico ma non lo è. Lo so solo perché è stata introdotta una voce nella tabella che aveva lo stesso valore di un’altra voce, già esistente, e questo ha causato problemi.

Come faccio a fare in modo che questo campo accetti solo valori univoci?

ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

Per MySQL 5.7.4 o versioni successive:

 ALTER TABLE mytbl ADD UNIQUE (columnName); 

A partire da MySQL 5.7.4, la clausola IGNORE per ALTER TABLE viene rimossa e il suo utilizzo produce un errore.

Quindi, assicurati di rimuovere le voci duplicate prima come la parola chiave IGNORE non è più supportata.

Riferimento

Basta scrivere questa query nel tuo db phpmyadmin.

 ALTER TABLE TableName ADD UNIQUE (FieldName) 

Esempio.

 ALTER TABLE user ADD UNIQUE (email) 

Grazie

Se vuoi anche nominare il vincolo, usa questo:

 ALTER TABLE myTable ADD CONSTRAINT constraintName UNIQUE (columnName); 

CREATE UNIQUE INDEX foo ON table_name (field_name)

(Devi rimuovere i valori duplicati prima di quello.)

 ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName); 

è la risposta giusta

la parte di inserto

 INSERT IGNORE INTO mytable .... 

Il modo più semplice e veloce sarebbe con la tabella della struttura phpmyadmin.

UTILIZZA IL PANNELLO AMMINISTRATORE DI PHPMYADMIN!

Eccolo in lingua russa, ma in inglese la versione dovrebbe essere la stessa. Basta fare clic sul pulsante Unico. Inoltre da lì puoi rendere PRIMARY o DELETE le tue colonne.

Questo codice serve a risolvere il nostro problema per impostare una chiave univoca per la tabella esistente

 alter ignore table ioni_groups add unique (group_name);