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:
Cuando ingreso un valor (decimal) como dinero en la tabla ingreso copio el campo cantidad al campo saldoVer original
+-----------+ |ingreso | +-----------+ |idingreso | |cantidad | |fecha | +-----------+ +-----------+ |saldo | +-----------+ |idsaldo | |saldo | | | +-----------+
mediante este trigger:
Código MySQL:
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:Ver original
Código MySQL:
Ver original
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.