sql >> Database >  >> RDS >> Mysql

gebruik de resultatenset van de mysql-opgeslagen procedure in een andere opgeslagen procedure

Wat je wilt doen klinkt niet bijzonder goed en misschien moet je nadenken over het opnieuw ontwerpen van die 2 processen. U kunt echter iets als dit doen als een snelle oplossing:

zorg ervoor dat uw sp2 sproc zijn tussenresultaten schrijft naar een tijdelijke tabel die u vervolgens kunt openen/verwerken in sp1. U kunt de tijdelijke tabel die u in sp2 hebt gemaakt, verwijderen zodra sp1 terugkeert.

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

niet erg elegant, maar zou het lukken



  1. SQL-serverschema en standaardschema

  2. NU() in de database invoegen met CodeIgniter's Active Record

  3. CREATE TABLE IF NOT EXISTS mislukt en de tabel bestaat al

  4. Straal van 40 kilometer met behulp van breedte- en lengtegraad