Disculpa,pero el problema es que no estás estudiando el manual de referencia para escribir rutinas almacenadas... En serio. Son errores de manual.
Código MySQL:
Ver original SET `egresos_t`= obra.egresos_t
+ (NEW.egresos
- OLD.egresos
), `ingresos_t` = obra.ingresos_t + (NEW.ingresos - OLD.ingresos),
`recepcion_t`= obra.recepcion_t + (NEW.recepcion - OLD.recepcion) ,
`combustible_recepcion_t`= obra.combustible_recepcion_t + (NEW.combustible_recepcion - OLD.combustible_recepcion),
`combustible_emision_t` = obra.combustible_emision_t + (NEW.combustible_emision - OLD.combustible_emision)
WHERE obra.codigo
= OLD.cod_obra
UPDATE obra
SET `egresos_t`= obra.egresos_t
- OLD.egresos
, `ingresos_t` = obra.ingresos_t - OLD.ingresos,
`recepcion_t`= obra.recepcion_t - OLD.recepcion,
`combustible_recepcion_t`= obra.combustible_recepcion_t - OLD.combustible_recepcion,
`combustible_emision_t` = obra.combustible_emision_t - OLD.combustible_emision
WHERE obra.codigo
= OLD.cod_obra
# NO PUEDEN EXISTIR DOS WHERE EN UNA MISMA SENTENCIA! WHERE obra.codigo
= NEW.cod_obra
Además, toda rutina (procedure, function, trigger, event) que contenga un
conjunto de sentencias debe forzosamente estar contenido en un bloque BEGIN / END, y no lo estás haciendo.
Código MySQL:
Ver original SET `egresos_t`= obra.egresos_t
+ (NEW.egresos
- OLD.egresos
), `ingresos_t` = obra.ingresos_t + (NEW.ingresos - OLD.ingresos),
`recepcion_t`= obra.recepcion_t + (NEW.recepcion - OLD.recepcion) ,
`combustible_recepcion_t`= obra.combustible_recepcion_t + (NEW.combustible_recepcion - OLD.combustible_recepcion),
`combustible_emision_t` = obra.combustible_emision_t + (NEW.combustible_emision - OLD.combustible_emision)
WHERE obra.codigo
= OLD.cod_obra
SET `egresos_t`= obra.egresos_t
- OLD.egresos
, `ingresos_t` = obra.ingresos_t - OLD.ingresos,
`recepcion_t`= obra.recepcion_t - OLD.recepcion,
`combustible_recepcion_t`= obra.combustible_recepcion_t - OLD.combustible_recepcion,
`combustible_emision_t` = obra.combustible_emision_t - OLD.combustible_emision
WHERE obra.codigo
= OLD.cod_obra
No puedo garantizarte que eso funcione, proque yo le veo algunos problemas de lógica...