簡體   English   中英

在另一個存儲過程中使用mysql存儲過程的結果集

[英]use result set of mysql stored procedure in another stored procedure

我有一個MYSQL存儲過程SP1(),它返回一個結果集。

我想在SP2()內部調用SP1()並遍歷SP1()的結果集以執行一些其他工作。

我不想從SP1()中包含我的邏輯,因為這會使SP2()過於復雜。

有什么建議么?

謝謝。

您想做的事情聽起來並不是特別好,也許您應該考慮重新設計這兩個過程。 但是,您可以執行以下操作來快速解決此問題:

使您的sp2 sproc將其中間結果寫入臨時表,然后可以在sp1內部進行訪問/處理。 一旦sp1返回,就可以刪除在sp2中創建的臨時表。

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

不是很優雅,但應該可以解決問題

游標將幫助解決該問題。

我不確定這是否可行,但是可以為SP1()的select調用創建一個游標,然后像往常一樣游標遍歷它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM