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

<b>Registros Repeditos</b>

Estas en el tema de <b>Registros Repeditos</b> en el foro de Mysql en Foros del Web. Tengo una pregunta para todo aquel que quiera ayudar, Tengo una base de datos con 7000 o mas registros, cada dia tengo que ingresar mediante ...
  #1 (permalink)  
Antiguo 02/10/2009, 15:32
 
Fecha de Ingreso: septiembre-2009
Ubicación: USA
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta <b>Registros Repeditos</b>

Tengo una pregunta para todo aquel que quiera ayudar,

Tengo una base de datos con 7000 o mas registros, cada dia tengo que ingresar mediante un archivo .CSV miles de registros mas.
mi pregunta es:

como puedo hacer desde mysql para revisar si alguna fila a tenido algun cambio y de paso como borrar la fila que no ha tenido cambios, pero al mismo tiempo dejar el registro mas antiguo o el nuevo eso da lo mismo, siempre y cuando no tenga ningun cambio.

el ID es automatico, pero puede ser que la infomacion de la la fila sea la misma mas adelante, pero solo el id sea distinto.

por ejemplo,
en la fila 1
id1 #order1 $12

en la fila 110
id110 #order1 $13
en este caso necesito conservar ambos porque hay un dato que no es igual

pero puede pasar que

id2 #2 $10

id300 #2 $10

esta informacion es la misma y solo necesito uno de los 2 no.

Atento a cualquier ayuda, de verdad lo apreciaria bastante.
muchas gracias

pd: alomejor creen que seria mejor hacer estio directamente por php?
o puedo hacerlos esto por mysql
  #2 (permalink)  
Antiguo 02/10/2009, 15:59
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: <b>Registros Repeditos</b>

Si no tuvieras el inconveniente de los ids que pueden ser diferentes, podrías utilizar insert ignore.
pero para este caso, creo que es mejor que te crees una función en mysql que reciba cada registro y revise si está o no está. Si está que no haga nada, si no está que lo inserte.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 05/10/2009, 07:14
 
Fecha de Ingreso: septiembre-2009
Ubicación: USA
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: <b>Registros Repeditos</b>

En este caso lo que puedo hacer es Quitar las Id's de la tabla, despues de revisar todas las conexiones que tengo hacia esa tabla ninguna de estas ocupa el Id.
asi que lo elimine completamente!

alguna idea de como hacerlo, lo que pasa es que todos los datos los paso por CSV hacia la BD.
entonces no se como hacerlo, si en el proceso de insercion de los datos o una vez que ya estan adentro reviso la bd.?

cualquier ayuda sera muy bien agradecida!!!!
  #4 (permalink)  
Antiguo 05/10/2009, 07:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: <b>Registros Repeditos</b>

Cita:
alguna idea de como hacerlo, lo que pasa es que todos los datos los paso por CSV hacia la BD.
entonces no se como hacerlo, si en el proceso de insercion de los datos o una vez que ya estan adentro reviso la bd.?
Trabaja con una tabla temporal y luego haz el análisis cuando ya tengas los datos dentro de ella.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/10/2009, 08:38
 
Fecha de Ingreso: septiembre-2009
Ubicación: USA
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: <b>Registros Repeditos</b>

estan todos los datos en este momento dentro de la tabla,
pero como hago una query para que me revide si la linea entera es igual y si es igual borrar una y si hay algo que cambio dejar las 2.
en ese problema estoy.
por ejemplo

tengo data desde el 1 de agosto hasta el 1 de octubre, manana ingreso data desde el 2 de agosto hasta el 2 de octubre, entonces revisar todos los datos que sean iguales durante esa fecha y borrar los que se repitan, pero siempre dejar uno de los 2, da lo mismo si es el nuevo o el viejo, siempre y cuando sean iguales.
  #6 (permalink)  
Antiguo 05/10/2009, 11:51
 
Fecha de Ingreso: septiembre-2009
Ubicación: USA
Mensajes: 15
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: <b>Registros Repeditos</b>

Por fin resulto, bueno muchas gracias a las ideas

aqui lo dejo por si alguien lo necesita

Código:
DELETE
FROM tabla1
USING tabla1, tabla1 AS vtable
WHERE vtable.id > tabla1.id
AND tabla1.order_number = vtable.order_number
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 23:28.