MySQL Forums
Forum List  »  Spanish

Re: Definición de triggers a través de phpmyadmin!!!
Posted by: Juan Pablo Isler
Date: August 06, 2009 07:07PM

Excelente, ese era mi error, bueno aparte de que no se puede definir Triggers After que modifiquen las variables NEW.

Gracias!!!!

Añado como quedaron los Triggers después de unos cambios, para que sirvan de ejemplo a aquellos que también tienen problemas ingresando triggers en PhpMyAdmin e incluso para aquellos que recién parten utilizandolos.

Como se mencionó, se debe especificar el valor del Delimitador como //

Los comentarios solo son para saber que hace el trigger, no se ingresan dentro del PhpMyAdmin.

/*
Trigger definido al ingresar registros en proyeccion (Poa y Marpoa).
Se actualizarán los campos Repoa y Marpoa de la tabla ventasestacion
de acuerdo a los valores ingresados en proyeccion.
*/
DROP TRIGGER IF EXISTS `upd_ventasestacion_bi`//

CREATE TRIGGER upd_ventasestacion_bi BEFORE INSERT ON proyeccion
FOR EACH ROW
BEGIN
SET NEW.repoa := NEW.poa;
UPDATE ventasestacion SET repoa = NEW.repoa WHERE idEds = NEW.idEds AND año = NEW.año AND mes = NEW.mes AND idProducto = NEW.idProducto;
UPDATE ventasestacion SET marpoa = NEW.marpoa WHERE idEds = NEW.idEds AND año = NEW.año AND mes = NEW.mes AND idProducto = NEW.idProducto;
END//

/*
Trigger definido al actualizar la tabla proyeccion (modificación de Repoa por planes de acción o por nueva propuesta de repoa).
Se actualizará el campo Repoa de la tabla ventasestacion según las modificaciones hechas en proyeccion.
*/
DROP TRIGGER IF EXISTS `upd_ventasestacion_au`//

CREATE TRIGGER upd_ventasestacion_au AFTER UPDATE ON proyeccion
FOR EACH ROW
BEGIN
UPDATE ventasestacion SET repoa = NEW.repoa WHERE idEds = NEW.idEds AND año = NEW.año AND mes = NEW.mes AND idProducto = NEW.idProducto;
END//

DROP TRIGGER IF EXISTS `mod_ventasestacion_bi`//

/*
Trigger definido al ingresar un registro en ventasestacion (ingreso de venta y margen).
Al ingresar una venta y margen a ventasestacion, el registro se actualiza con el repoa y marpoa
establecidos previamente para aquella venta (Para una estacion, año, mes y producto específicos).
*/
CREATE TRIGGER mod_ventasestacion_bi BEFORE INSERT ON ventasestacion
FOR EACH ROW
BEGIN
DECLARE REPOA DECIMAL(15,5);
DECLARE MARPOA DECIMAL(15,5);
SELECT repoa INTO REPOA FROM proyeccion WHERE idEds = NEW.idEds AND año = NEW.año AND mes = NEW.mes AND idProducto = NEW.idProducto;
SET NEW.repoa := REPOA;
SELECT marpoa INTO MARPOA FROM proyeccion WHERE idEds = NEW.idEds AND año = NEW.año AND mes = NEW.mes AND idProducto = NEW.idProducto;
SET NEW.marpoa := MARPOA;
END//



Edited 1 time(s). Last edit at 08/06/2009 07:10PM by Juan Pablo Isler.

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Definición de triggers a través de phpmyadmin!!!
8052
August 06, 2009 07:07PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.