Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Procedimiento MySQL para calcular un dato e insertarlo

Estas en el tema de Procedimiento MySQL para calcular un dato e insertarlo en el foro de Mysql en Foros del Web. Buenas, tengo una base de datos en MySQL, y utilizo Phpmyadmin para gestionarla. Dentro de la base de datos tengo una tabla, con algunos datos ...
  #1 (permalink)  
Antiguo 16/04/2012, 09:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 116
Antigüedad: 15 años, 3 meses
Puntos: 0
Procedimiento MySQL para calcular un dato e insertarlo

Buenas, tengo una base de datos en MySQL, y utilizo Phpmyadmin para gestionarla. Dentro de la base de datos tengo una tabla, con algunos datos numéricos, y me gustaría hacer un procedimiento que cogiera varios de esos datos numéricos, hiciera algunas operaciones sobre ellos, para luego insertar el resultado en un campo de la misma tabla. Por poner un ejemplo sencillo:
Si tuviera una tabla con 3 campos, Numerador, Denominador y Resultado, ¿Cómo hago un procedimiento almacenado, que cuando yo actualice Numerador o Denominador, se actualice solo el campo Resultado?

Saludos.
  #2 (permalink)  
Antiguo 16/04/2012, 10:08
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Procedimiento MySQL para calcular un dato e insertarlo

Los campos calculables no se deben almacenar. Implican procesos innecesarios de mantenimiento y actualización.
Cuando tienes un valor que surge de otros relacionados de la misma tablas o de otras, esos valores se calculan directamente en las consultas y se devuelven como columnas de resultado.
Almacenarlos directamente ya calculados implica espacio desperdiciado en disco y procesos de mantenimiento adicionales para mantener la consistencia.
Es una pésima práctica (en la universidad, poner un campo calculable en la respuesta de un examen equivale a ser reprobado sin más trámite).

si aún así quieres hacerlos, estudia el tema de los TRIGGER, que serían para tu caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/04/2012, 10:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 116
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Procedimiento MySQL para calcular un dato e insertarlo

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Los campos calculables no se deben almacenar. Implican procesos innecesarios de mantenimiento y actualización.
Cuando tienes un valor que surge de otros relacionados de la misma tablas o de otras, esos valores se calculan directamente en las consultas y se devuelven como columnas de resultado.
Almacenarlos directamente ya calculados implica espacio desperdiciado en disco y procesos de mantenimiento adicionales para mantener la consistencia.
Es una pésima práctica (en la universidad, poner un campo calculable en la respuesta de un examen equivale a ser reprobado sin más trámite).

si aún así quieres hacerlos, estudia el tema de los TRIGGER, que serían para tu caso.
Vale, me has convencido, de hecho actualmente lo hago mediante una consulta, pero pensaba que era mejor hacerlo automático, ya veo que no.

Muchas gracias por tu respuesta.

Etiquetas: procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.