sql >> Base de Datos >  >> RDS >> Mysql

Eliminar registros duplicados sin crear una tabla temporal

Aquí hay una solución en el lugar (pero no de una sola línea)

Descubra la identificación máxima:

select max(id) as maxid 
  from shop;

Recuerda este valor. Digamos que es igual a 1000;

Vuelva a insertar valores únicos, con compensación:

insert into shop (id, tax_id) 
select distinct id + 1000, tax_id 
  from shop;

Eliminar valores antiguos:

delete from shop
  where id <= 1000;

Restaurar identificaciones normales:

update shop
  set id = id - 1000;

¡BENEFICIO!