Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać danych wyjściowych tabeli z zapisanej procedury MYSQL?

Nie można tego zrobić bezpośrednio, ponieważ wyjściem nieograniczonego wyboru w procedurze składowanej jest zestaw wyników wysłany do klienta, ale technicznie nie tabela.

Obejściem tego problemu jest umożliwienie proc umieszczeniu danych w tabeli tymczasowej po utworzeniu tabeli dla Ciebie. Ta tabela będzie dostępna tylko dla Twojego połączenia po zakończeniu procedury. Nie spowoduje to konfliktu, jeśli ktoś inny uruchomi proc w tym samym czasie i nie będzie widoczny dla żadnego innego połączenia.

Dodaj to do procedury:

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

Po zakończeniu procedury SELECT * FROM foo; da ci to, co byś otrzymał z proc. Możesz do niego dołączyć jak do każdego stołu.

Kiedy skończysz, upuść go, albo zniknie samo po rozłączeniu. Jeśli uruchomisz proc ponownie, zostanie on usunięty i odtworzony.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aplikacje Django dla wielu dzierżawców:zmiana połączenia z bazą danych na żądanie?

  2. Szybkość:MySQL a wyjście pliku

  3. MySQL Pivot Query z sumą wartości kolumny

  4. Czy powinienem uciec od oczekiwanej wartości całkowitej za pomocą mysql_real_escape_string, czy po prostu użyć (int)$expectedinteger

  5. Wartość wejściowa w tablicy wstawia pusty rekord w mysql