Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам изход на таблица от съхранена процедура на MYSQL

Това не може да бъде направено директно, тъй като изходът от неограничен избор в съхранена процедура е набор от резултати, изпратен на клиента, но технически не е таблица.

Заобиколното решение е да позволите на процедурата да постави данните във временна таблица, след като създаде таблицата за вас. Тази таблица ще бъде достъпна само за вашата връзка, когато процедурата приключи. Това няма да предизвика конфликт, ако някой друг стартира процедурата по същото време и няма да бъде видимо за друга връзка.

Добавете това към процедурата:

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

Когато вашата процедура приключи, SELECT * FROM foo; ще ви даде това, което бихте получили от процедурата. Можете да се присъедините към нея почти като всяка маса.

Когато приключите, пуснете го или ще изчезне сам, когато прекъснете връзката. Ако стартирате процедурата отново, тя ще бъде премахната и създадена отново.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво е новото за без повече varchar(255)

  2. Сортиране на PHP масив в колони

  3. Как да изберете записът съдържа MAX(някое_поле) в рамките на ГРУПА (група по)

  4. Propel:избиране на колони от таблици за свързване с псевдоним

  5. Предаване на масив от PHP към Javascript с помощта на JQuery &JSON