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

usar el conjunto de resultados del procedimiento almacenado mysql en otro procedimiento almacenado

Lo que quieres hacer no suena particularmente bien y tal vez deberías pensar en rediseñar esos 2 procesos. Sin embargo, podría hacer algo como esto como una solución rápida:

obtenga su sproc sp2 para escribir sus resultados intermedios en una tabla temporal a la que luego puede acceder/procesar dentro de sp1. Luego puede eliminar la tabla temporal que creó en sp2 una vez que sp1 regrese.

http://pastie.org/883881

delimiter ;
drop procedure if exists foo;
delimiter #

create procedure foo()
begin

  create temporary table tmp_users select * from users;

  -- do stuff with tmp_users

  call bar();

  drop temporary table if exists tmp_users;

end #

delimiter ;

drop procedure if exists bar;

delimiter #

create procedure bar()
begin
  -- do more stuff with tmp_users
  select * from tmp_users;
end #

delimiter ;

call foo();

no es muy elegante pero debería funcionar