sql >> Databáze >  >> RDS >> Mysql

Jak používat tabulkový výstup z uložené procedury MYSQL

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.



  1. Weird MySQL Python mod_wsgi Nelze se připojit k serveru MySQL na „localhost“ (49) problém

  2. Jak zrušit databázi PostgreSQL, pokud k ní existují aktivní připojení?

  3. Změna časového pásma připojení v MySQL

  4. Získejte příkaz Insert pro existující řádek v MySQL