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

¿Como borrar varios registros automaticamente al finalizar un tiempo dado en Mysql?

Estas en el tema de ¿Como borrar varios registros automaticamente al finalizar un tiempo dado en Mysql? en el foro de Bases de Datos General en Foros del Web. Hola que tal. Tengo una base de datos con varias tablas, ¿Como puedo borrar registros automaticamente cuando se cumpla un limite de tiempo? Por ejemplo ...
  #1 (permalink)  
Antiguo 06/04/2004, 09:07
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 21 años, 2 meses
Puntos: 0
¿Como borrar varios registros automaticamente al finalizar un tiempo dado en Mysql?

Hola que tal.

Tengo una base de datos con varias tablas, ¿Como puedo borrar registros automaticamente
cuando se cumpla un limite de tiempo?
Por ejemplo cuando se llena un registro, existe un campo Fecha en el cual se pone la
fecha de la creacion del registro, Ahora deseo que este registro permanezca en la base de datos
solo 60 dias a partir de su Fecha de creacion, y al cumplirse se borre automaticamente, es decir
los registros solo permanecerian en la BD solo 60 dias a partir de su creacion o registro
y despues se borrarian automaticamente ¿Como se puede hacer en mysql?

Gracias de antemano
Saludos.
  #2 (permalink)  
Antiguo 06/04/2004, 11:18
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 10 meses
Puntos: 0
Creo que se puede hacer con un trigger o un store procedure
  #3 (permalink)  
Antiguo 06/04/2004, 14:41
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años, 2 meses
Puntos: 11
no hay triggers ni store procedures aun en mysql. Desde la version 5 en adelante estaran soportados.
  #4 (permalink)  
Antiguo 06/04/2004, 18:22
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años, 8 meses
Puntos: 0
Hola:

Yo haría un query que haga dos pasos simples para hacer lo que quieres:

1. Tomar la fecha actual y restarle 60, lo que nos daría la fecha que deben de tener los registros que queremos borrar.

2. Borrar todos los registros que tengan la fecha de nuestro resultado.

Muy bien, pues aquí esta el query que debes de usar:

Código:
DELETE FROM tabla WHERE fecha = DATE_SUB(CURDATE(), INTERVAL 60 DAY)
NOTA: No he probado el código, pero estoy seguro de que te debe de funcionar.

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #5 (permalink)  
Antiguo 06/04/2004, 19:23
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años, 2 meses
Puntos: 11
pero no es automatico, hay que ejecutar el comando. Se puede ejecutar con una tarea programada en windows o con un cron job en linux, usando el comando que indica kidd
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #6 (permalink)  
Antiguo 08/04/2004, 12:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola
Gracias por contestar,

Kidd el codigo funciona,
Le hice una modificacion
Código PHP:
DELETE FROM tabla WHERE fecha <= DATE_SUB(CURDATE(), INTERVAL 60 DAY
Por si acaso un dia no accedo al programa, si encuentran la solucion automatica, me avisan.

Gracias de nuevo.
Hasta Pronto. Saludos
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:27.