Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/03/2014, 18:06
davidc_10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Uso de Old en un Trigger

Hola gracias por tu comentario, pues si no estoy mal el AFTER se dispara despues de que se actualice la tabla y el BEFORE antes de que esto ocurra (Segun documentacion de Mysql), aun asi realice el cambio y el error persiste, el problema que yo veo es como mencione anteriormente la palabra aparantemente reserveda OLD no cambia de color (azul en mi editor) cosa que si sucede con New, entonces estoy dudando sera que la palabra reservada sigue siendo OLD o por la version del Mysql ya le cambiaron el nombre. No se yo pienso que por ahi va la cosa pero no termino de entender.

Asi quedo el Trigger:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. USE 'Farmacia'$$
  4.  
  5. CREATE TRIGGER TgVentasAct BEFORE UPDATE ON Ventas
  6.  
  7.         Declare Devuelto INT;
  8.         Devuelto=Old.Cantidad-New.Cantidad;
  9.         Update Inventario set Existencia=Existencia+Devuelto where idProducto=New.Id_Producto;
  10.         Insert Into Movimientos (idTipoMov,IdProducto,Fecha,Cantidad) values (5,New.Id_Producto,Now(),New.Cantidad);
  11. $$
  12. DELIMITER;

El error que me da es este:


Script line: 5 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=Old.Cantidad-New.Cantidad;
Update Inventario set Existencia=Existencia+Devue' at line 6

Gracias.

Última edición por gnzsoloyo; 28/03/2014 a las 19:19