Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/11/2012, 12:55
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con trigger

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 original
  1. SELECT nombre, campo1, campo2, campo3, (campo1 + campo2 + campo3) resultado
  2. FROM tabla;
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 original
  1. INSERT INTO tabla
  2. VALUES(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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)