Nose si llamarlo así pero paso a comentar lo que intento hacer.
Código:
DELIMITER //
CREATE TRIGGER ActualizoTotalAnadeVenta AFTER UPDATE ON anade_venta
FOR EACH ROW BEGIN
IF NEW.ANADE_VENTA_CANTIDADPRODUCTO = OLD.ANADE_VENTA_CANTIDADPRODUCTO THEN
UPDATE anade_venta SET ANADE_VENTA_TOTAL = (ANADE_VENTA_CANTIDADPRODUCTO *
(SELECT a1.PRODUCTO_PRECIO
FROM producto a1, lote_producto a2
WHERE a2.LOTE_PRODUCTO_ID = OLD.LOTE_PRODUCTO_ID AND a2.PRODUCTO_ID = a1.PRODUCTO_ID));
END IF;
END//
En el anterior código intento crear un trigger que se ejecuta cada vez que se lleve un UPDATE de la tabla anade_venta para re calcular el precio de la misma. Como es obvio esto generaria un bucle sin fin por tal motivo al intentar hacer un update no me deja. Intente poniendo el IF que ven pero tampoco me ayudo.
Lo que intento hacer es posible y si es así como lo puedo hacer?
Muchas gracias.
Saludos
EDIT:
Buscando en el fondo del agujero del conejo encontré la solución y es algo sencillo la verdad, publico la solución por si a alguien mas le pasa.
Debe de usar el clasico UPDATE vale poner el set NEW.columna = SENTENCIA.
Código:
DELIMITER //
CREATE TRIGGER ActualizoTotalAnadeVenta BEFORE UPDATE ON anade_venta
FOR EACH ROW BEGIN
IF NEW.ANADE_VENTA_CANTIDADPRODUCTO != OLD.ANADE_VENTA_CANTIDADPRODUCTO THEN
SET NEW.ANADE_VENTA_TOTAL = (NEW.ANADE_VENTA_CANTIDADPRODUCTO *
(SELECT a1.PRODUCTO_PRECIO
FROM producto a1, lote_producto a2
WHERE a2.LOTE_PRODUCTO_ID = OLD.LOTE_PRODUCTO_ID AND a2.PRODUCTO_ID = a1.PRODUCTO_ID));
END IF;
END//