1. OLD es la pseudovariable que contiene los valores que ya están en el registro. Es funcional en el UPDATE.
2. Cuando estás haciendo un UPDATE a una tabla, no debes realizar un INSERT a la misma en el mismo campo, sino manipular los contenidos de las pseudo OLD y NEW:
Código:
CREATE TRIGGER trigger_movimientos_inventario AFTER UPDATE ON inventarioreal
FOR EACH ROW
BEGIN
SET NEW.cantidadprod_inventarioreal = OLD.cantidadprod_inventarioreal-NEW.cantidadprod_inventarioreal;
END;
y de todos modos, esto es algo que deberías controla directamente en el UPDATE:
Código:
UPDATE inventariomov
SET cantidadprod_inventarioreal = cantidadprod_inventarioreal+@candidad ,
fecha_inventariomov = NOW(),
usuario_id = 1
WHERE id_productos = @idvariable;
siendo @cantidad y @idvariable variables que contengan los valores a actualizar e identificar.
3. ¡Por Dios, puntuá bien tus mensajes que casi no se comprenden las frases! No estás escribiendo en un SMS.