Frage

die nächste Tabelle Mit:

id -> incremental
field_1 -> foreignkey
field_2 -> foreignkey

Ich will den nächsten Index hinzuzufügen

ALTER TABLE my_table ADD unique index(field_1, field_2);

Wie auch immer ich habe (aufgrund einer schlechten Anwendung Validierung) Ich habe eine Menge von wiederholten Zeilen (durch wiederholte ich meine gleiche field_1 und gleiche field_2, mit nur id als Differenz)

Die Tabelle hat etwa 60.000 Zeilen so ... Feld Entfernen von Feld sehr schwierig wäre.

Wie kann ich diesen Index anwenden und alle duplizierten Zeilen entfernen?

War es hilfreich?

Lösung

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top