Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2015, 07:01
perezjuanpeluso33
 
Fecha de Ingreso: enero-2015
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema en la actualizacion con un Trigger

Hola a todos como están

Tengo un problema con la actualización de un dato con trigger de tabla a otra tabla. Les paso a explicar:

Tengo 2 tablas una llamada Ingreso y otra saldo
Código MySQL:
Ver original
  1. +-----------+
  2. |ingreso    |
  3. +-----------+
  4. |idingreso  |
  5. |cantidad   |
  6. |fecha      |
  7. +-----------+
  8.  
  9.  
  10. +-----------+
  11. |saldo      |
  12. +-----------+
  13. |idsaldo    |
  14. |saldo      |
  15. |           |
  16. +-----------+
Cuando ingreso un valor (decimal) como dinero en la tabla ingreso copio el campo cantidad al campo saldo
mediante este trigger:
Código MySQL:
Ver original
  1. CREATE TRIGGER `tr_insertar_valor` AFTER INSERT ON `ingreso`
  2. INSERT INTO saldo(saldo) VALUES (New.cantidad);
El problema se presenta cuando quiero "modificar " esa cantidad en la tabla ingreso una cantidad el triger que uso ON UPDATE en la tabla ingreso es este:
Código MySQL:
Ver original
  1. CREATE RIGGER `tr_actualiza_valor` AFTER UPDATE ON `ingreso`
  2. update saldo set saldo=New.cantidad;

El problema en si es que este ultimo trigger modifica la cantidad en la tabla saldo si la modifico en la tabla ingreso pero si hay ingresadas mas registros en la tabla saldo al modificar cualquier registro en la tabla ingreso en la tabla saldo el 2do TR me modifica tooooodas los registros y me los pone a todos con la misma cifra...

Lo expresare con un ejemplo mas grafico

INGRESE LA SUMA DE $300,12 Y USO EL
tr_insertar_valor

TABLA INGRESO TABLA SALDO

idingreso | cantidad| idsaldo|saldo |
1 | 300,12 | | 1 |300,12
----------------------- -------------------

INGRESO OTRO VALOR EN LA TABLA INGRESO:

TABLA INGRESO TABLA SALDO
------------------------- -------------------
idingreso | cantidad| idsaldo|saldo |
------------------------- -------------------
1 | 300,12 | | 1 |300,12
2 | 78,20 | 2 | 78,20
----------------------- -------------------

Y AQUI VIENE EL PROBLEMA AL "MODIFICAR CON EL
tr_actualiza_valor

------------------------- -------------------
idingreso | cantidad| idsaldo|saldo |
------------------------- -------------------
1 | 66,10 | | 1 |66,10
2 | 78,20 | 2 |66,10
----------------------- -------------------

Como veran modifique la suma de $300,12 y en la tabla saldo en vez de modificarme solo ese valor me modifico todos los valores y con la misma cifra todos iguales. Lo he probado con mas cifras y hace lo mismo si en la tabla ingresos hay 20 registros el 1er TR los copiara a los 20 y bien.. pero si yo modifico CUALQUIERA en la tabla ingreso EL 2DO TR modificara todos los registros y con la misma cifra en vez de modificarme el que he modificado en la tabla ingreso solamente.

Se que al 2do TR le falta algo .. he probado con la clausula WHERE idsaldo = idsaldo y de mil formas con esta clausula y me da error no me deja o no hace nada.
Si alguien sabe de cual es el error en el segundo TR y me pudiera ayudar le estaria agradecido.

Muchas Gracias de antemano.

Última edición por gnzsoloyo; 12/01/2015 a las 07:21