SQL - REGISTROS REPETIDOS

 
Vista:

REGISTROS REPETIDOS

Publicado por erik raudi (2 intervenciones) el 01/09/2009 20:10:14
Hola a todos.

Hace algunos meses la aplicación que desarrolle comenzo a generar errores, uno de ellos duplicaba todo un reeglón de la misma tabla; es decir, hacia una copia exacta o "clonaba" información.

He logrado crear una consulta que me dice que información esta repetida;

Deseo eliminar la info clonada y dejar la info. original, pero como la info. es igual en todos los campos no cuento con un parametro que condicione la eliminación de todo y me deje un sólo registro por info. repetida.

¿Como puedo hacer esto?

Espero me puedan ayudar.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:REGISTROS REPETIDOS

Publicado por Dani (10 intervenciones) el 09/09/2009 17:13:34
Una forma de hacerlo sería añadiendo un identificador único a la tabla, de tipo numérico e incremental de forma que nunca una fila sería exactamente igual a la anterior, (es una buena técnica a la hora de diseñar una tabla que siempre tenga un identificador único que sea índice principal y de tipo numérico e incremental)
Cuando ya lo tengas lo único que habría que hacer en tu consulta de duplicados es mostrar por ejemplo el valor mínimo (o máximo) de la fila duplicada y borrar todos los registros cuyo id único sea el de la consulta.

De forma que si los que quieres borrar son:
(select min(id),xx1,xx2 from tabla group by xx1,xx2 having count(xx1)>1)
Se borrarían de la siguiente forma:
delete tabla where id in (select min(id),xx1,xx2 from tabla group by xx1,xx2 having count(xx1)>1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar