MySql aggiungere index più colonne con righe ripetute
-
28-09-2019 - |
Domanda
Avere tavolo accanto:
id -> incremental
field_1 -> foreignkey
field_2 -> foreignkey
Voglio aggiungere l'indice successivo
ALTER TABLE my_table ADD unique index(field_1, field_2);
Come mai ho (a causa di una convalida applicazione cattivo) ho un sacco di righe ripetute (da ripetute intendo stessa Campo_1 e lo stesso Campo_2, avendo appena id come differenza)
La tabella ha circa 60.000 righe così ... rimozione campo per campo sarebbe molto difficile.
Come posso applicare tale indice e rimuovere ogni riga duplicato?
Soluzione
create table mytable2 like mytable;
insert into mytable2
select max(id), field_1, field_2
from mytable
group by field_1, field_2;
rename table mytable to mytable_old, mytable2 to mytable;
ALTER TABLE my_table ADD unique index(field_1, field_2)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow