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

Ayuda con un Trigger

Estas en el tema de Ayuda con un Trigger en el foro de Mysql en Foros del Web. Amigo ayuda para crear un trigger. este es como en teoria tendria que ser: Código PHP: CREATE DEFINER  =  CURRENT_USER TRIGGER  ` product_after_upd_tr `  AFTER UPDATE ON  ` product ...
  #1 (permalink)  
Antiguo 28/02/2011, 09:59
 
Fecha de Ingreso: noviembre-2010
Mensajes: 35
Antigüedad: 13 años, 5 meses
Puntos: 1
Ayuda con un Trigger

Amigo ayuda para crear un trigger.
este es como en teoria tendria que ser:
Código PHP:
CREATE DEFINER CURRENT_USER TRIGGER `product_after_upd_trAFTER UPDATE ON `product`
  FOR 
EACH ROW
BEGIN
set 
`product`.`quantity` = `qty_prod`.`QTY`
WHERE `qty_prod`.`product_id` = `product`.`product_id`;
END
pero mysql no me permite montarlo.
se que tendría que usar OLD, o NEW. pero no se como hacerlo.
si alguien me puede echar una mano, se lo agradecería.
  #2 (permalink)  
Antiguo 28/02/2011, 10:08
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: Ayuda con un Trigger

Por empezar, no puedes hacer un trigger que ejecute un INSERT, UPDATE, DELETE o DROP sobre la misma tabla donde se define el TRIGGER, porque la tabla en ese momento está bloqueada.
Además, estás tratando de obtener un valor aparentemente de una segunda tabla, sin realizar ninguna lectura en ella (`qty_prod`.`QTY`)
Código MySQL:
Ver original
  1. CREATE TRIGGER `product_after_upd_tr` AFTER UPDATE ON `product`
  2.   UPDATE `qty_prod`
  3.   SET `QTY` = `QTY` + NEW.`quantity`
  4.   WHERE `product_id` = NEW.`product_id`;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

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 23:59.