• Retrointernet
Retrointernet
Eliminar registros duplicados en MySQL

Eliminar registros duplicados en MySQL

  • 17 de septiembre de 2015

En muchas ocasiones es necesario eliminar registros duplicados de una tabla, MySQL nos avisa cuando intentamos crear una clave única basada en algunos campos y nos dice que no es posible. Antes deberemos eliminar los registros duplicados para crear el índice único.

MySQL ofrece distintas opciones, nosotros vamos a explicar una de las más simples.

Consiste en crear un índice único y al mismo tiempo eliminar los registros que sobran, para conseguirlo utilizaremos “ALTER IGNORE TABLE”.

Un ejemplo:

alter ignore table directorio add unique index idx_directorio(url);

El ejemplo anterior, eliminará de una tabla los registros que tengan la url duplicada, dejará uno y el resto serán eliminados.

Advertencia:

En algunas versiones de MySQL, la técnica anterior sólo funciona con tablas myISAM. Si tu tabla es InnoDB deberás convertirla primero a MyISAM y por último volverla a convertir a InnoDB.