Hay algunos errores conceptuales en lo que propones hacer:
- No se guardan de una base de datos valores calculables, entendiendo por tales aquellos valores que pueden ser calculados al momento de consultar los datos.
En tu caso, estás planteando guardar la suma de los mismos campos del registro... lo cual termina siendo un verdadero despropósito.
¿Para qué guardar eso, si el mismo resultado lo obtienes así:
Código MySQL:
Ver originalSELECT nombre
, campo1
, campo2
, campo3
, (campo1
+ campo2
+ campo3
) resultado
De hecho, ni aún cuando fueses a guardar ese dato resulta funcional hacer un TRIGGER para eso, por cuanto que también podrías hacer el INSERT de esta forma:
Código MySQL:
Ver originalVALUES(Valor_nombre
, Valor_campo1
, Valor_campo2
, Valor_campo3
, (Valor_campo1
+ Valor_campo2
+ Valor_campo3
));
Los valores calculables no se guardan porque no aportan absolutamente ninguna ventaja tenerlos en un campo, y pueden traer aparejados problemas de consistencia de datos si alguno de los valores de origen se modifica. En ese caso requiere programar rutinas de mantenimiento de consistencia, y además realizar verificaciones adicionales
cada vez que se accede a ellos para validar que el dato sea correcto respecto de los datos fuente.
Es muchísimo más sencillo crear VIEWs para que muestren el valor directamente, y siempre actualizado.