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

Stored en MySql

Estas en el tema de Stored en MySql en el foro de Mysql en Foros del Web. Hola.. Quisiera saber si me pueden ayudar con esto. Tengo una base de datos en mysql y tengo hacer un stored procedure que reciba como ...
  #1 (permalink)  
Antiguo 20/03/2009, 13:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Stored en MySql

Hola..

Quisiera saber si me pueden ayudar con esto. Tengo una base de datos en mysql y tengo hacer un stored procedure que reciba como parametro una cadena de ids separados por coma y que inserte en una tabla.

Por ejemplo tengo la tabla paises y quiero insertar en otra tabla varios id de paises que lo paso todo junto en un parametro como cadena separados por coma.
Esto mismo lo tengo en Sql, y lo resuelvo haciendo una funcion que retorna un tabla con los ids que paso. El problema es que en mysql no se puede hacer una funcion que retorne una tabla....

Alguna idea se les pueden ocurrir???
  #2 (permalink)  
Antiguo 20/03/2009, 13:42
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: Stored en MySql

Una función en MySQL sólo puede retornar un valor, pero un SP puede retornarte una tabla si la última sentencia del SP es un SELECT.
El detalle es que en vez de poner en un String de PHP "SELECT ...etc" tienes que poner "CALL NOMBREPROCEDIMIENTO".
Si el SP lo llamas desde PHP, los parámetros tienen que entrar en un string encerrado por apóstrofes: "CALL PROCEDIMIENTO('1, 2, 3, 4, ')". Obviamente deberás escapar los apóstrofes para evitar los problemas de sintaxis con el PHP.
Si usas ASP, por otro lado, o VB.Net, puedes parametrizar por medio del conector .Net de MySQL y controlas mejor la entrada - salida de datos.
__________________
¿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 20/03/2009, 13:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Stored en MySql

Hola, el tema es que lo hice como stored, lo ejecuto de esta forma CALL procedimiento ('1,2,3,4'); lo que devuelve ese stored que hice son 4 registros... pero a esos cuatros registros que devuelve lo quiero insertar en una tabla, ese es el problema, el stored esta hecho y me devuelve todos los registros que le paso al parametro, pero a ese resultado como lo inserto en una tabla???

Gracias
  #4 (permalink)  
Antiguo 20/03/2009, 13:59
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: Stored en MySql

Dentro del store procedure, y antes de del SELECT final, perfectamente puedes hacer el INSERT.

Para darte un consejo más detallado, deberías postear la estructura de las tablas y si es posible, el ejemplo de SP que usas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/03/2009, 14:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 9
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Stored en MySql

Perdon, no te habia dicho antes, tengo un stored que inserta una trivia a la base de datos para que los usuarios respondan, esa trivia es para multiples paises, entonces tengo el stored CALL procedimiento ('1,2,3,4') que me separa los ids como registros para que luego en el oro stored CALL insert_trivia (parametros) inserte en multiples paises, sin tener que estar ejecutando el mismo varias veces pasandole de a uno el id de los paises. El tema es que ambos stored tienen muchas lineas de codigo, es por eso que lo que queria hacer es que dentro del stored insert_trivia llame al otro CALL procedimiento ('1,2,3,4') y vaya insertando... Por eso es que pedia alguna idea de como hacerla para no marearme con tantas lineas de codigo.. La otra es separarlo desde php pero tengo que solucionarlo desde la base de datos..

Gracias nuevamente...
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 20:32.