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

保存されたMYSQLプロシージャからのテーブル出力の使用方法

    ストアドプロシージャでの無制限のselectの出力はクライアントに送信される結果セットであるため、これを直接行うことはできませんが、技術的にはテーブルではありません。

    回避策は、テーブルを作成した後、procがデータを一時テーブルに配置できるようにすることです。このテーブルは、手順が終了したときに接続でのみ使用できます。他の誰かが同時にprocを実行し、他の接続からは見えない場合でも、競合は発生しません。

    これを手順に追加します:

    DROP TEMPORARY TABLE IF EXISTS foo;
    CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
    

    手順が終了したら、SELECT * FROM foo; あなたがprocから得たであろうものをあなたに与えるでしょう。他のテーブルとほとんど同じように参加できます。

    完了したら、ドロップします。そうしないと、切断したときに自動的に消えます。プロシージャを再度実行すると、プロシージャは削除されて再作成されます。



    1. mysqlでの初期認証の問題

    2. SQL Server に線形回帰関数はありますか?

    3. グレゴリオ暦以外の日付をMysqlの日付タイプに保存する

    4. CREATE TABLEの1つの識別子が二重に引用されているのに、他の識別子は引用されていないのはなぜですか?