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

Trigger Mysql

Estas en el tema de Trigger Mysql en el foro de Mysql en Foros del Web. Hola!!! Me gustaría saber si se puede realizar un trigger que sólo se dispare si un campo en especial es modificado? Ya que yo necesito ...
  #1 (permalink)  
Antiguo 13/09/2010, 16:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo Trigger Mysql

Hola!!! Me gustaría saber si se puede realizar un trigger que sólo se dispare si un campo en especial es modificado? Ya que yo necesito guardar uno o dos campos pero no cada vez que se toca esa tabla porque almacenaría por demás y yo solo quisiera almacenar cada vez que se modifique ese campo en especial.. Me refiero a si existe en Mysql alguna sintaxis para el trigger del tipo :

CREATE TRIGGER trigger_1 AFTER UPDATE OF ´dni´ ON `usuarios`

Gracias de antemano..!!!

PD: lo ideal es hacerlo mediante trigger porque si lo hago con php no podría saber si realmente modifica el campo..
  #2 (permalink)  
Antiguo 15/09/2010, 23:07
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Trigger Mysql

Hola.

eso no es posible. siempre que se realice una actualizacion o el evento que dispare en trigger lo hara sin importar que campo(s) se modifique(n). pero lo que pudieras hacer es validarlo mediante un if en el que vea si en dato de determinado campo fue enviado en la actualizacion y de esta manera "bloquear" u "omitir" el trigger

Suerte.
  #3 (permalink)  
Antiguo 16/09/2010, 07:25
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Trigger Mysql

Complementando un poco la respuesta de lair.

cuando se ejecute el trigger puedes hacer una comparación en su interior.

Código SQL:
Ver original
  1. IF NEW.DNI != OLD.DNI THEN
  2.  --ACCION A REALIZAR
  3. END IF;

Si esto se cumple, es por que ese campo fue modificado, de lo contrario el trigger si bien se valida no realiza ninguna acción.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: 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 07:28.