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

trigger

Estas en el tema de trigger en el foro de Mysql en Foros del Web. Hola a todos.... muy buenas Tengo el siguiente codigo y necesito pasarlo a un trigger ya que necesito que se realice automaticamente.... Asi como lo ...
  #1 (permalink)  
Antiguo 15/07/2011, 06:59
 
Fecha de Ingreso: julio-2011
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
trigger

Hola a todos.... muy buenas

Tengo el siguiente codigo y necesito pasarlo a un trigger ya que necesito que se realice automaticamente....

Asi como lo tengo echo, yo tengo que actualizar la pagina para que se pueda ejecutar el codigo ese....

Código PHP:
if ($v_control $fecha_actual){
$sql ' UPDATE Controles
          SET anterior = IF(control = CURDATE(), control, anterior),
          control = IF(control = CURDATE(), siguiente, control),
          siguiente = IF(anterior = CURDATE(), ADDDATE(siguiente, INTERVAL 6 MONTH), siguiente)'

$result mysql_query $sql);

Gracias
  #2 (permalink)  
Antiguo 15/07/2011, 07:30
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: trigger

http://barcoavenus.blog.com/2010/12/...ados-en-mysql/
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 15/07/2011, 07:31
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, 5 meses
Puntos: 2658
Respuesta: trigger

Creo que este tema lo estuvimos hablando ya...

Si lo quieres poner en un trigger que se dispare en un UPDATE, la pregunta´, para poder responderte sería: ¿Qué dato sería el que enviarías en el UPDATE? ¿anterior? ¿control? ¿siquiente?
Porque al menos uno de esos valores lo tienes que enviar o de lo contrario el trigger no se dispararía.

Lo que yo no veo util, como te dije la vez pasada, es hacer un trigger para realizar una tarea que puedes hacer en el mismo UPDATE que usas para provocar el trigger... Por eso te di esa propuesta.

Si quieres actualizar en automático, ¿no te resultaría más eficiente usar un EVENT para hacer esto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 15/07/2011, 08:34
 
Fecha de Ingreso: julio-2011
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: trigger

Hola

Tengo que testear que control sea igual a la fecha actual.... y si son iguales actualizo todos los campos anterior, control y siguiente, que es lo que me pasastes el otro dia.

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.

Gracias
  #5 (permalink)  
Antiguo 15/07/2011, 08:47
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, 5 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)
  #6 (permalink)  
Antiguo 15/07/2011, 10:59
 
Fecha de Ingreso: julio-2011
Mensajes: 16
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: trigger

La verdad que te lo agradezco... me re salvastes
No tenia mucha idea de como hacerlo poruqe recien me estoy iniciando en esto!!

Muchas gracias

Etiquetas: query, sql, trigger
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 00:46.