To nelze provést přímo, protože výstupem neohraničeného výběru v uložené proceduře je sada výsledků odeslaná klientovi, ale technicky to není tabulka.
Řešením je nechat proc vložit data do dočasné tabulky po vytvoření tabulky za vás. Tato tabulka bude po dokončení procedury dostupná pouze pro vaše připojení. Nezpůsobí konflikt, pokud někdo jiný spustí proces současně a nebude viditelný pro žádné jiné připojení.
Přidejte toto do postupu:
DROP TEMPORARY TABLE IF EXISTS foo;
CREATE TEMPORARY TABLE foo SELECT ... your existing select query here ...;
Po dokončení procedury SELECT * FROM foo;
vám dá to, co byste dostali od proc. Můžete se k němu připojit jako ke každému stolu.
Až budete hotovi, zahoďte jej, nebo po odpojení zmizí sám. Pokud spustíte proces znovu, bude zrušen a znovu vytvořen.