Những gì bạn muốn làm có vẻ không đặc biệt tốt và có lẽ bạn nên nghĩ đến việc thiết kế lại 2 procs đó. Tuy nhiên, bạn có thể làm điều gì đó như sau để khắc phục nhanh chóng:
lấy sp2 của bạn để ghi kết quả trung gian của nó vào một bảng tạm thời mà sau đó bạn có thể truy cập / xử lý bên trong sp1. Sau đó, bạn có thể xóa bảng tạm thời mà bạn đã tạo trong sp2 khi sp1 quay trở lại.
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();
không thanh lịch lắm nhưng nên làm thủ thuật