Actualizar Tabla De La Bd 1 Semana Después Que Se Hizo El Registro

Buenas, tengo una tabla de solicitudes, las cuales todas serán aprobadas en algún momento, toda solicitud a la semana de ser aprobada sera entregada, esa solicitud tiene un campo llamado fecha_asignada que sera la fecha en que se aprueba, y tiene un campo llamada completada que seria el valor 0 para cuando aun no esta completada o 1 cuando ya paso esa semana y se entrego, como haría una function desde mi aplicación en yii para que siempre este comparando las fechas y si tienen una semana de diferencia me cambie el campo completada a 1 y sino me los mantenga en 0? o como lo haría del lado del servidor a través de un trigger (creo que así se llama).

En yii no lo puedes hacer directamente (tampoco desde php solamente), lo unico que puedes hacer es crear una aplicación tipo consola que haga la función que tu quieres y ejecutarla desde cronjobs.

La otra opción es crear un evento en mysql que haga un update de todos los registros que tengan una antiguedad de mas de una semana y que aun no se entregan.

el evento en mysql me serviria pero no se hacerlo, tu sabes como se haria?

De forma simple

seria algo como


CREATE EVENT `nombre_de_tu_evento` ON SCHEDULE EVERY 1 DAY STARTS '2014-03-25 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO UPDATE `tabla_solicitudes` SET `completada`=1, `fecha_asignada`=CURDATE() WHERE DATEDIFF(CURDATE(),`fecha_alta`)=7

Que solamente actualiza los valores de los registros que tengan 7 dias desde su fecha de alta a la fecha actual con completada igual a 1.

ON SCHEDULE EVERY 1 DAY STARTS ‘2014-03-25 00:00:00’ <— pero es esta parte debo dejar esa fecha que pusiste? o siempre tomara esa fecha como punto de partida?

Es la fecha de la primera vez que se va a ejecutar el evento, puedes cambiarla, yo puse la fecha de hoy hoy a las 12 de la noche(que es lo mismo que a las cero horas de mañana), pero puedes poner cualquier fecha, por ejemplo puedes poner mañana a las 15 horas para que el evento se ejecute apartir del dia de mañana cada dia a las 15 horas.

oh ya entiendo muchas gracias :D

una pregunta como cambiaria campos de otras tablas al mismo tiempo es decir en la tabla solicitantes cambiar el realizadas de 1 a 0 porque cada solicitante puede tener solo 1 solicitud activa