简体   繁体   中英

use result set of mysql stored procedure in another stored procedure

I have a MYSQL stored procedure SP1() that returns a result set.

I want to call SP1() inside of SP2() and loop through the result set of SP1() to do some additional work.

I don't want to include my logic from SP1() because it would make SP2() too complicated.

Any suggestions?

Thanks.

What you want to do doesnt sound particularly good and maybe you should think about re-designing those 2 procs. However, you could do something like this as a quick fix:

get your sp2 sproc to write it's intermediate results to a temporary table which you can then access/process inside of sp1. You can then drop the temporary table which you created in sp2 once sp1 returns.

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();

not very elegant but should do the trick

Cursors would help solve the issue.

I am not sure if this is possible but make a cursor for select call for SP1() and iterate over them as usual cursor.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM