Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

sử dụng tập kết quả của thủ tục được lưu trữ mysql trong một thủ tục được lưu trữ khác

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.

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

không thanh lịch lắm nhưng nên làm thủ thuật



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một kết nối cơ sở dữ liệu có nên luôn mở hay chỉ được mở khi cần thiết?

  2. Cấu hình của MySQL 8

  3. Có ai có bằng chứng đáng kể rằng CHAR nhanh hơn VARCHAR không?

  4. Chỉ mục đầy đủ là gì và khi nào tôi nên sử dụng nó?

  5. Nhận hàng gần đây nhất cho ID đã cho