Tema: Trigger
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2016, 05:25
xPHPerox
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Trigger

Buenos días, estoy intentando realizar el siguiente trigger:

Código MySQL:
Ver original
  1. USE tienda;
  2.  
  3. DELIMITER $$
  4. DROP TRIGGER IF EXISTS actualizar_stock$$
  5. CREATE TRIGGER actualizar_stock AFTER INSERT ON detalles FOR EACH ROW
  6.  
  7.  
  8. DECLARE vstock INT(11);
  9. SET vstock = (SELECT stock FROM productos WHERE id_producto=NEW.id_producto);
  10. UPDATE productos SET stock=vstock-NEW.cantidad WHERE id_producto=NEW.id_producto;
  11.  
  12. END $$

Lo que quiero hacer, es que tras realizar un INSERT en la tabla detalles, se resten a la tabla productos la cantidad de productos utilizados en la compra, no sé si me he explicado bien..

El problema está en que me salta el siguiente mensaje de error:

Error Code: 1442. Can't update table 'productos' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

No tengo ningún otro trigger en dicha tabla, así que no entiendo muy bien de donde sale ese error.

Saludos y gracias.