Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

eliminar duplicados en tabla sin key

Estas en el tema de eliminar duplicados en tabla sin key en el foro de Mysql en Foros del Web. Tengo una tabla sin key :o\ a la que quisiera ponerle un indice Unique. Pero el problema es que ya tiene datos y hay algunos ...
  #1 (permalink)  
Antiguo 28/01/2011, 10:58
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Información eliminar duplicados en tabla sin key

Tengo una tabla sin key :o\ a la que quisiera ponerle un indice Unique. Pero el problema es que ya tiene datos y hay algunos duplicados.

Para eliminar los duplicados tengo esto. Sin embargo, no funciona el DISTINCT porque tengo una tercera columna que no esta necesariamente duplicada. Como puedo hacer entonces?

Código MySQL:
Ver original
  1. CREATE TABLE temporal LIKE puntuaciones;
  2.  
  3. Insert into temporal
  4.   from puntuaciones;
  5.  
  6. truncate puntuaciones;
  7.  
  8. insert into puntuaciones
  9.  Select *
  10.   from temporal;
  11.  
  12. DROP TABLE  IF EXISTS  temporal;

Mi tabla es:
puntuaciones(ip, id_foto, puntos) // notese que dice ip, no id.

Última edición por mayid; 28/01/2011 a las 11:04
  #2 (permalink)  
Antiguo 28/01/2011, 12:01
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: eliminar duplicados en tabla sin key

Listo. Lo que hice fue poner el indice UNIQUE a la tabla temporal, antes de llenarla. Y lo mismo a la tabla puntuaciones antes de volver a llenarla:

Código MySQL:
Ver original
  1. CREATE TABLE temporal LIKE puntuaciones;
  2.  
  3. ALTER TABLE temporal ADD UNIQUE (
  4. `ip` ,
  5. `id_foto`
  6. );
  7.  
  8. Insert IGNORE into temporal
  9.   from puntuaciones;
  10.  
  11. truncate puntuaciones;
  12.  
  13. insert into puntuaciones
  14.  Select *
  15.   from temporal;
  16.  
  17. ALTER TABLE puntuaciones ADD UNIQUE (
  18. `ip` ,
  19. `id_foto`
  20. );
  21.  
  22. DROP TABLE  IF EXISTS  temporal;

Etiquetas: duplicados, eliminar, key, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.