Tema: trigger
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/07/2011, 08:47
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: trigger

Cita:
Pero la cuestion es que necesito que se realice automaticamente esta actualizacion, y si lo hago con un update tengo qe entrar todos los dias a la pag para que se actualice... y lo que necesito es que se realice sin que yo entre a la pag.
Bueno, precisamente eso es a lo que me refería cuando te sugiero implementarlo por un EVENT y no hacerlo por un TRIGGER.
Los TRIGGERs únicamente se disparan cuando se produce el evento sobre el que se definen y no por sí mismos. No son tareas programadas de Windows o procesos programados en el cron, como en Linux.
En tu caso, si lo pones en un TRIGGER definido sea en lo que sea, no se ejecutará a menos que ejecutes al menos una sentencia de ese tipo... lo que nos lleva a que para eso, mejor usas la consulta completa y listo.
¿Se entiende?
El EVENT es otra cosa. Se trata de una tarea programada en la base que se ejecuta cada vez que se cumple la condición puesta.
EVENT es un objeto que existe a partir de la versión de MySQL 5.1.x Si estás usando una anterior tendrás que programarlo en scripts que se ejecuten por programación en el sistema y no en la base.

Código MySQL:
Ver original
  1. CREATE EVENT IF NOT EXISTS actualizar_control
  2.     ON SCHEDULE
  3.     EVERY 1 DAY
  4.     DO  UPDATE Controles
  5.           SET anterior = IF(control = CURDATE(), control, anterior),
  6.           control = IF(control = CURDATE(), siguiente, control),
  7.           siguiente = IF(anterior = CURDATE(), ADDDATE(siguiente, INTERVAL 6 MONTH), siguiente);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)