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

Procedimiento almacenado y Trigger

Estas en el tema de Procedimiento almacenado y Trigger en el foro de Mysql en Foros del Web. Hola foreros del web tengo un problema para genear un trigger+store procedure. Tengo las siguientes tablas: material id_material: int nombre: varchar(100) descripcion: longtext material_compra id_material_compra: ...
  #1 (permalink)  
Antiguo 19/12/2012, 16:41
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 9 meses
Puntos: 1
Pregunta Procedimiento almacenado y Trigger

Hola foreros del web tengo un problema para genear un trigger+store procedure.

Tengo las siguientes tablas:

material
id_material: int
nombre: varchar(100)
descripcion: longtext

material_compra
id_material_compra: int
id_material: int
fecha: date
cantidad: double
unidad_medida: varchar(15)
precio: double

proyecto
id_proyecto: int
nombre: varchar(100)

material_proyecto
id_material_proyecto: int
id_material: int
id_proyecto: int

1.-Deseo hacer una suma de la cantidad total de cada material, lo cual hago la siguiente consulta para traer el total por cada material:
Código MySQL:
Ver original
  1. SELECT SUM(cantidad) AS total
  2. FROM material_existencia
  3. WHERE id_material = 1
2.- Ahora quiero que cada vez que inserte un registro en la tabla material_proyecto se descuente la suma o cantidad total del material que indico por ejemplo en el formulario, me pide la cantidad de material a descontar pero el problema viene cuando hay dos o mas registros del mismo material en la tabla material_compra, se me ocurrio hacer un store procedure que sume la cantidad de x material y llamar ese store procedure dentro de un trigger que seria el trigger de la tabla material_proyecto, despues de insertar un registro, si no me explico bien haganmelo saber y espero sus respuestas, comentarios o regaños.

como nota quiero solucionarlo con un trigger+store procedure, aunque ya lo solucione creando otra tabla que lleve la suma del total del material pero lo que quiero es ahorrarme esa tabla, gracias de antemano y esta es la otra tabla:

material_existencia
id_material_existencia: int
id_material: int
cantidad: double

ayudaaa por favor estoy empezando todavia con trigger y store procedures

Última edición por gnzsoloyo; 19/12/2012 a las 18:29 Razón: Código SQL mal etiquetado. Usar Highlight "MySQL"
  #2 (permalink)  
Antiguo 19/12/2012, 16:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Procedimiento almacenado y Trigger

MySQL no permite ejecutar un stored procedure desde un trigger. Y tampoco lo necesitas, porque podrías hacer todo desde un SP sin problemas.
__________________
¿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 19/12/2012, 19:47
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Procedimiento almacenado y Trigger

Cita:
Iniciado por gnzsoloyo Ver Mensaje
MySQL no permite ejecutar un stored procedure desde un trigger. Y tampoco lo necesitas, porque podrías hacer todo desde un SP sin problemas.
Me podrias indicar como hacerle o darme una idea de como hacerlo, gracias de antemano
  #4 (permalink)  
Antiguo 29/12/2012, 10:11
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 13 años, 5 meses
Puntos: 42
Respuesta: Procedimiento almacenado y Trigger

Hola gnzsoloyo,

Cita:
Iniciado por gnzsoloyo Ver Mensaje
MySQL no permite ejecutar un stored procedure desde un trigger.
Hay casos donde es posible, depende de lo que haga el procedimiento almacenado.
  #5 (permalink)  
Antiguo 29/12/2012, 10:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Procedimiento almacenado y Trigger

Cierto. Era una restricción en versiones anteriores, pero veo en los anexos del manual para la 5.6 que esa restricción ya se eliminó.
De todos modos me parece absolutamente innecesario hacer eso si se diseña mejor ese esquema de administración de materiales. A mi entender, es ineficiente como sistema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: myslq, procedimiento_almacenado, trigger
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 08:04.