sql >> Database teknologi >  >> RDS >> Mysql

brug resultatsæt af mysql lagret procedure i en anden lagret procedure

Det, du vil gøre, lyder ikke særlig godt, og måske skulle du overveje at re-designe de 2 procs. Du kan dog gøre noget som dette som en hurtig løsning:

få din sp2 sproc til at skrive sine mellemresultater til en midlertidig tabel, som du derefter kan få adgang til/behandle inde i sp1. Du kan derefter droppe den midlertidige tabel, som du oprettede i sp2, når sp1 vender tilbage.

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

ikke særlig elegant, men burde gøre tricket



  1. Sådan får du sidste række pr. gruppe i PostgreSQL

  2. SQL Server - find n'te forekomst i en streng

  3. Kompleks fremmednøglebegrænsning i SQLAlchemy

  4. MySQL-gruppe efter datoer mellem