/* @BD_Vuelta_trigger.sql */ /* actualizar el valor de etapasG en la tabla corredor */ UPDATE Corredor C SET etapasG = (SELECT count(*) FROM Llegada WHERE ordenMeta = 1 AND dorsal = C.dorsal); /* especificar el disparador para actualizar automáticamente etapasG */ CREATE OR REPLACE TRIGGER ganarEtapa AFTER INSERT OR DELETE OR UPDATE OF ordenMeta ON Llegada FOR EACH ROW BEGIN IF UPDATING OR DELETING THEN IF (:old.ordenMeta = 1) THEN UPDATE Corredor SET etapasG=etapasG-1 WHERE dorsal=:old.dorsal; END IF; END IF; IF UPDATING OR INSERTING THEN IF (:new.ordenMeta = 1) THEN UPDATE Corredor SET etapasG=etapasG+1 WHERE dorsal=:new.dorsal; END IF; END IF; END ganarEtapa; / SHOW ERRORS TRIGGER ganarEtapa