sql >> データベース >  >> RDS >> Mysql

mysqlストアドプロシージャの結果セットを別のストアドプロシージャで使用する

    あなたがやりたいことは特に良く聞こえないので、多分あなたはそれらの2つのprocを再設計することを考えるべきです。ただし、簡単な修正として次のようなことを行うことができます:

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

    あまりエレガントではありませんが、うまくいくはずです



    1. MySQLで過去7日間のレコードを取得する方法

    2. CTE、サブクエリ、一時テーブル、またはテーブル変数の間にパフォーマンスの違いはありますか?

    3. SQL演算子

    4. コロン記号はSQLクエリで何をしますか?