Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/03/2014, 08:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Uso de Old en un Trigger

Aclarame una cosa: ¿No te funciona porque dispara un error, o porque no cumple con lo que quieres?

Por otro lado, no me queda claro qué haces con ese "Numero" después. Depende de para qué lo uses y cómo te funcionará o no.

Por lo pronto, las dos formas funcionan, aunque la segunda se debería escribir de otro modo:

Caso 1:
Código MySQL:
Ver original
  1. CREATE TRIGGER TgComprasAg AFTER INSERT ON Detalle_Compra
  2.     DECLARE Numero as INT;
  3.     SELECT COUNT(*)
  4.     FROM Detalle_Lote
  5.     WHERE IdProducto=NEW.id_Producto AND IdLote=NEW.idLote
  6.     INTO Numero;
  7.     -- Por las dudas...
  8.     IF Numero IS NULL THEN
  9.         SET Numero = 0;
  10.     END IF;
  11. END$$
DELIMITER ;

Caso 2:
Código MySQL:
Ver original
  1. CREATE TRIGGER TgComprasAg AFTER INSERT ON Detalle_Compra
  2.     DECLARE Numero as INT;
  3.     SET Numero = (SELECT COUNT(*)
  4.         FROM Detalle_Lote
  5.         WHERE IdProducto=NEW.id_Producto AND IdLote=NEW.idLote);
  6.     -- Por las dudas...
  7.     IF Numero IS NULL THEN
  8.         SET Numero = 0;
  9.     END IF;
  10. END$$
  11. -- Deja un espacio luego del DELIMITER, de lo contrario marcará errores.
  12. DELIMITER;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)