Saltar al contenido

Eliminar filas duplicadas de la base de datos sqlite

Solución:

Necesita una forma de distinguir las filas. Según su comentario, puede usar la columna de identificador de fila especial para eso.

Para eliminar duplicados manteniendo el más bajo rowid por (hash,d):

delete   from YourTable
where    rowid not in
         (
         select  min(rowid)
         from    YourTable
         group by
                 hash
         ,       d
         )

Supongo que lo más rápido sería usar la base de datos misma: agregue una nueva tabla con las mismas columnas, pero con las restricciones adecuadas (¿un índice único en hash / par real?), Iterar a través de la tabla original e intentar insertar registros en la nueva tabla, ignorando los errores de violación de restricciones (es decir, continuar iterando cuando surjan excepciones).

Luego elimine la tabla anterior y cambie el nombre de la nueva por la anterior.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *