Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Como saber el dato que acaba de entrar??

Estas en el tema de Como saber el dato que acaba de entrar?? en el foro de Mysql en Foros del Web. hola de nuevo tengo una duda y no he podido con ella como puedo saber el dato que acaba de ingresar en una actualización por ...
  #1 (permalink)  
Antiguo 05/06/2008, 09:05
cLe
 
Fecha de Ingreso: junio-2008
Mensajes: 29
Antigüedad: 15 años, 10 meses
Puntos: 0
Exclamación Como saber el dato que acaba de entrar??

hola de nuevo tengo una duda y no he podido con ella como puedo saber el dato que acaba de ingresar en una actualización por ejemplo si se actualiza un producto de inventario porque se compraron 100 mas con que parametro obtengo el 100 que se actualizó? lo que hago es algo asi

DELIMITER //
CREATE TRIGGER trigger_movimientos_inventario AFTER UPDATE ON inventarioreal
FOR EACH ROW
BEGIN
INSERT INTO inventariomov(id_productos, cantidad_movinventario, fecha_inventariomov, usuario_id)
VALUES (id_productos, (OLD.cantidadprod_inventarioreal-NEW.cantidadprod_inventarioreal), NOW(), 1 );
END;
DELIMITER;

si alguien sabe como de antemano gracias
  #2 (permalink)  
Antiguo 05/06/2008, 10:13
Avatar de 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: Como saber el dato que acaba de entrar??

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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/06/2008, 10:43
cLe
 
Fecha de Ingreso: junio-2008
Mensajes: 29
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como saber el dato que acaba de entrar??

mmm de hecho lo que hago es insertar en otra tabla diferente no en la misma pero gracias ha sido de ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.