MySQL - Modificar datos de un campo cuando se acualizan otros

 
Vista:

Modificar datos de un campo cuando se acualizan otros

Publicado por Raul (1 intervención) el 23/04/2011 02:28:59
Gracias a todos de antemano.
Bueno este es un ejercicio muy sencillo pero no me sale el trigger.
Tengo una tabla con cuantro campos, codigo Varchar(15),ExistenciasTeoricas int,ExistenciasFisicas int,Diferencia int.
Por medio de una interface en java tomo de un archivo de texto el código y la existencia teórica y los inserto a la tabla que se llama cotejamiento, al resto de los campos les inserto un cero. Luego de otro archivo de texto obtengo la existencia física con su respectivo código(digamos un código de barras en número que obviamente encontraremos en la tabla), tomo ese codigo y actualizo la tabla en el campo EsistenciasFiscas, lo que quiero es que cada vez que actualice ExistenciasFísicas, es decir cuando le inserte un valor que me de el otro archivo de texto, el ultmo campo que es diferencias se le insete o mejor dicho actualice el valor de ExistenciasFisicas menos el valor de ExistenciasTeoricas para tener un regstro de faltantes o sobrantes y luego generar un reporte.
El código que creo que es:


CREATE TRIGGER tr1_restar
after UPDATE OF ExistenciasFsicas
ON cotejamiento
FOR EACH ROW
UPDATE cotejamiento
SET diferencias = new.ExistenciasFisicas - old.ExistenciasToricas where codigo = new.codigo;
END;

Pero esto me marca error y no se puede crear el trigger, alguien me podría explicar cómo corregirlo por favor? es la parte más impotante jeje y es lo que no sale XD Lo que se espera sería:

codigo ExistenciasTeoricas ExistenciasFsicas diferencias
123456............ 52.................................. 51...................... -1

en este caso faltaría una pieza del codigo 123456.

codigo ExistenciasTeoricas ExistenciasFsicas diferencias
123457............. 45................................. 47....................... 2

en este caso sobrarían 2 piezas del codigo 123457.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder