Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/02/2011, 18:06
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: llave foranea

Hay al menos cuatro formas de encarar el problema:
1) Hacerlo por medio de dos consultas distintas, cada una a su tabla pero usando el mismo valor de ID.
2) Hacer un UPDATE con un INNER JOIN entre ambas tablas (lo acabo de pensar, no se si alguien lo planteó antes, pero se me hace que hay que intentarlo.
3) Hacer la segunda actualización en un TRIGGER declarado en la primera tabla afectada.
4) Poner todo el proceso de dos consultas en un Stored Procedure.

Yo me inclinaría a probar algo así:
Código MySQL:
Ver original
  1. UPDATE inventario I INNER JOIN productos P ON I.producto_id = P.producto_id
  2. SET I.cantidad = valor, P.existencia = P.existencia + valor
  3. WHERE I.producto_id = idBuscado;
Te repito que no lo he probado antes, lo acabo de pensar recordando ciertas operaciones que hice en otras tablas hace tiempo y no sé si alguien propuso algo así alguna vez, pero creo que debería funcionar...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)