El problema:
Hay una tabla que a pesar de haber sido pensada para soportar registros con similar información, la práctica demostró que los registros eran exactamente los mismos y se deben eliminar los duplicados sin alterar la estructura de la tabla.
Posteriormente a solucionar el problema, lo recomendable es agregar un índice único que efectivamente sirva a nuestra necesidad.
Por cierto, la solución sólo aplica si la tabla tiene una columna que permite diferenciar 2 registros "similares", en mi caso esta es la columna fecha, que corresponde a la fecha en que se generó el registro ( now() ).
Posteriormente a solucionar el problema, lo recomendable es agregar un índice único que efectivamente sirva a nuestra necesidad.
Por cierto, la solución sólo aplica si la tabla tiene una columna que permite diferenciar 2 registros "similares", en mi caso esta es la columna fecha, que corresponde a la fecha en que se generó el registro ( now() ).
La solución:
- Hacerse una idea de cuantos registros están duplicados:
SELECT identificador, COUNT(*) AS c
FROM mitabla
GROUP BY identificador
HAVING COUNT(*) > 1 - Eliminar los registros duplicados:
DELETE FROM mitabla
WHERE fecha NOT IN
(SELECT MIN(fecha)
FROM mitabla
GROUP BY identificador
HAVING COUNT(*) >= 1)
No hay comentarios.:
Publicar un comentario