sql >> Base de Datos >  >> RDS >> Mysql

Cómo usar la salida de la tabla del procedimiento MYSQL almacenado

Esto no se puede hacer directamente, porque la salida de una selección ilimitada en un procedimiento almacenado es un conjunto de resultados enviado al cliente, pero técnicamente no es una tabla.

La solución es dejar que el proceso coloque los datos en una tabla temporal después de crear la tabla por usted. Esta tabla estará disponible solo para su conexión cuando finalice el procedimiento. No causará un conflicto si alguien más ejecuta el proceso al mismo tiempo y no será visible para ninguna otra conexión.

Agregue esto al procedimiento:

DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;

Cuando termine su procedimiento, SELECT * FROM foo; le dará lo que hubiera obtenido del proceso. Puede unirse a él prácticamente como cualquier mesa.

Cuando haya terminado, suéltelo o desaparecerá por sí solo cuando se desconecte. Si vuelve a ejecutar el proceso, se eliminará y se volverá a crear.