Pregunta

Tener la siguiente tabla:

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

Quiero añadir el siguiente índice

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

Cómo siempre tengo (debido a la validación de aplicaciones malo) Tengo un montón de registros repetidos (por repetida me refiero misma field_1 y field_2 misma, que acaba de Identificación como diferencia)

La tabla tiene unos 60.000 filas por lo que ... la eliminación de campo por campo sería muy difícil.

¿Cómo puedo aplicar ese índice y eliminar cada fila duplicada?

¿Fue útil?

Solución

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top