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

Delete selectivo

Estas en el tema de Delete selectivo en el foro de Mysql en Foros del Web. Saludos, ante todo muchas gracias por las posibles respuestas que aquellos en disposición puedan aportar! Tengo una tabla "histórico" en esa tabla tengo un campo ...
  #1 (permalink)  
Antiguo 29/09/2011, 08:47
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado Aragua
Mensajes: 7
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Delete selectivo

Saludos, ante todo muchas gracias por las posibles respuestas que aquellos en disposición puedan aportar!

Tengo una tabla "histórico" en esa tabla tengo un campo que almacena el código de trabajador (numérico) y una fecha en este formato "2011-09-29 00:00:00", adicional a otros campos que son de tipo varchar sin ningún tipo de formato especifico.

Mi problema es el siguiente, necesito de alguna forma dejar por trabajador solo el registro que sea mas reciente, el resto de los registros debe ser eliminado, y no hay un numero definido de históricos por código, pueden tener un solo registro como puede tener 11 registros o mas, nuevamente muchas gracias a las personas que dispongan un poco de su tiempo en aportar alguna idea o solución a mi problema! muchas gracias!
  #2 (permalink)  
Antiguo 29/09/2011, 09:36
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, 4 meses
Puntos: 2658
Respuesta: Delete selectivo

MySQL no puede leer y borrar una tabla al mismo tiempo, en la misma consulta, por lo que para hacer esa depuración lo mejor sería trabajar con una tabla temporary y al menos dos consultas: Una crea la tabla con los ID de los registros que deben mantenerse, y el otro realiza la eliminación. Como las tablas TEMPORARY no son permanentes, no generarán conflictos al cerrase la conexión.
Esa es la opción que a mi me parece más viable.

Es un:
Código MySQL:
Ver original
  1. CREATE TEMPORARY TABLE tabla_temp_id AS
  2. FROM ....
  3. WHERE ...;
  4.  
  5. WHERE id NOT IN(SELECT id FROM ...)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: query
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:11.