Delimitadores, delimitadores,
delimitadores... Ya te lo dije en otra ocasión:
Código MySQL:
Ver originalDELIMITER$$
INSERT INTO hclientes
(idusuario
,anterio_dinero
, nuevo_dinero
, fecha
) VALUES (OLD.idusuario
, OLD.dinero
, NEW.dinero
, NOW()); DELIMITER ;
Respecto a esto:
Cita: "cosa que puede darse si simplemente el UPDATE que ejecutes no incluye una cantidad nueva para el campo...."
piensalo de esta forma:
Cuando haces un UPDATE en el que no estás actualizando la totalidad de los campos de la tabla, los restantes, ¿existen o no para la pseudovariable NEW? La respuesta es SI, existen, pero no contienen valores o contienen NULL.
En tu caso, si te planteas que registre la transacción si lo que entra es diferente a lo que está, puede llegar a registrarse cuando envíes un UPDATE que afecte otros campos, pero no ese. Y creo que esa no es tu idea.
Por eso es conveniente que antes que controlar si son iguales, hay que verificar si el campo entrante contiene un valor legal y recién entonces verificar si los datos son diferentes.
¿Se entiende más?