Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] procedura skladowana, tabela tymczasowa
zietek
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 1
Dołączył: 25.12.2007

Ostrzeżenie: (0%)
-----


  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `root`.`proc1` $$
  4. CREATE DEFINER = `root` @ `localhost` PROCEDURE `proc1`()
  5. BEGIN CREATE TEMPORARY TABLE temp (
  6. `imie` VARCHAR(45),
  7. `nazwisko` VARCHAR(45)
  8. );
  9.  
  10. INSERT INTO temp (imie, nazwisko) (SELECT imie, nazwisko FROM `osoby`);
  11.  
  12. /* tu pewne operacje na tabeli temp */
  13.  
  14. SELECT * FROM temp; DROP TABLE temp;
  15. END $$
  16.  
  17. DELIMITER;


W procedurze skladowanej tworze tymczasowa tabele, do ktorej wrzucam dane z tabeli 'osoby'. Nastepnie wykonuje pewne operacje na tabeli tymczasowej (ktore tu pominalem w celu nie zaciemniana skryptu) i zwracam obrobione dane przy pomocy select.

Pytanie: czy wielokrotne wywolanie tej procedury w tym samym czasie nie spowoduje jednoczesnej pracy na tej samej tabeli temp, co spowoduje blad albo przeklamania w danych? W bazach MS SQL korzystalem ze zmiennej typu table (cos jak ponizej). Niestety w MySQL to nie dziala, albo coz zle robie....

  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `root`.`proc1` $$
  4. CREATE DEFINER = `root` @ `localhost` PROCEDURE `proc1`()
  5. BEGIN DECLARE temp TABLE(imie VARCHAR(45), nazwisko VARCHAR(45));
  6.  
  7. INSERT INTO temp (imie, nazwisko) (SELECT imie, nazwisko FROM `osoby`);
  8.  
  9. /* tu pewne operacje na tabeli temp */
  10.  
  11. SELECT * FROM temp; END $$
  12.  
  13. DELIMITER;


Jak rozwiazac ten problem?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.01.2026 - 09:03