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

Trigger para actualizar registros dependiendo de la fecha

Estas en el tema de Trigger para actualizar registros dependiendo de la fecha en el foro de Mysql en Foros del Web. Hola amigos.... he estado tratando de idear una solución eficiente aun problema. verán tengo una tabla llamada publicaciones, la cual tiene un estado (activo, finalizado), ...
  #1 (permalink)  
Antiguo 08/06/2013, 15:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 90
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Trigger para actualizar registros dependiendo de la fecha

Hola amigos....he estado tratando de idear una solución eficiente aun problema.
verán tengo una tabla llamada publicaciones, la cual tiene un estado (activo, finalizado), tiene una fecha de inicio y fecha de finalizado.

Seria posible hacer un tiggers que compare la fecha del sistema con la fecha finalizado de la tabla publicaciones, si la fecha del sistema do pc es mayor a fecha finalizado, cambie el estado de la publicación a finalizado. sabiendo que en la tabla publicaciones hay muchisimos registros...no alcanzo a visualizar como seria ese trigger, si es posible claro esta.

Seguramente pobre hacer una solucion con php...y metodos, pero seria interesante una solucion a nivel de PL/SQL....

Muchas gracias por leer el post, y si hay una solucion seguramente nos servira a todos los de este foro.

Código:
 Tabla publicaciones
 Titulo ........ y otros
 Fecha_inicial (date)
 Fecha_final (date)
 estado  (Activo (1),  Finalizado (2))
  #2 (permalink)  
Antiguo 08/06/2013, 19:59
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 21 años, 3 meses
Puntos: 3
Respuesta: Trigger para actualizar registros dependiendo de la fecha

Es posible pero ten en cuenta que los triggers funcionan con respecto a eventos agregar, editar o eliminar. El trigger se ejecuta antes o despues de alguna de esas acciones. lO QUE no hará el trigger es repasar la tabla cada dia y hacer las actualizacioens correspndientes. Eso no lo hará un trigger.

Si no te vale el trigger el codigo a realizar es mas o menos este
Código:
update tabla set activo=false 
where activo=true and datediff(curdate(),fecha_final)<=0
Si te valiera un trigger sería mas o menos así
Código:
for each row
begin
if (NEW.activo=true) then
   if (datediff(curdate(),NEW.fecha_final)>=0) then
      NEW.activo=false;
   endif;
endif;
end
pero repito, el trigger salta antes o despues (según lo construyas) de un insert, update o delete. Al crearlo tu le dices el evento y si debe saltar antes o despues.

En phpmyadmin lo puedes hacer facilente si entras en la tabla y buscas en el menu de arriba 'disparadores'
  #3 (permalink)  
Antiguo 10/06/2013, 04:24
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 13 años, 5 meses
Puntos: 42
Respuesta: Trigger para actualizar registros dependiendo de la fecha

Hola kosios,

Más que un trigger, necesitas un event, dale un vistazo a 19.4.1. Event Scheduler Overview, seguro te será de utilidad.

Última edición por wchiquito; 10/06/2013 a las 06:26

Etiquetas: disparadores
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 10:56.