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

MySQL Procedure

Estas en el tema de MySQL Procedure en el foro de Bases de Datos General en Foros del Web. Hola, Tengo el siguiente procedure en MySQL @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE DEFINER = `root` @ `localhost` PROCEDURE `sp _ prueba1` (   ...
  #1 (permalink)  
Antiguo 09/09/2017, 00:32
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
MySQL Procedure

Hola,

Tengo el siguiente procedure en MySQL

Código MySQL:
Ver original
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_prueba1`(
  2.     in _id_categoria int
  3. )
  4.  
  5. select @id_prod:=ProductID, @price:=UnitPrice from products
  6.        where CategoryID = _id_categoria      
  7.            group by ProductID HAVING max(UnitPrice) order by 2 desc limit 1;
  8. select det.OrderID,prod.ProductName,det.UnitPrice,det.Quantity from orderdetails det
  9.          inner join products prod on prod.ProductID = det.ProductID
  10.          where det.ProductID = @id_prod;
  11.          

Al ejecutarlo en workbench veo que me arroja dos pestañas con resultado.
resultado 1 tiene el primer select con los valores de los dos parametros (@id_prod , @price)
resultado 2 tiene la consulta final (mi consulta deseada).

Mi duda es, al momento de llevar mi SP para la creacion de mi aplicativo, cual de estos dos resultados es el que mandara ???


Gracias.
  #2 (permalink)  
Antiguo 09/09/2017, 12:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: MySQL Procedure

y porque no lo pruebas y lo descubres? regresaria el 2 resultado.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/09/2017, 06:13
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: MySQL Procedure

Dependiendo de cómo lo programes, con qué lenguaje y de qué forma lo manipules, podrías obtener un DataSet de mas de una tabla, pero para ello se debe definir que el SP tendrá multiples resultados.
Usualmente se programa para recibir un único resultado desde el SP, y no dos o más. Utilizando otros DBMS (Oracle, por ejemplo) es posible manejar mas de un cursor de resultado, que MySQL no admite.
En definitiva, es preferible que por simpleza de recursos generes dos SP diferentes para alimentar diferentes objetos resultado en la aplicacion. Eso te recomendaría, porque luego administrar errores o defectos de datos con uno solo puede complicarte la vida.
__________________
¿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: join, mysql, procedure, select
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 21:46.