[mysql] procedura

0

Czesc,

mam pewne zapytanie:

select flight_no,flight_arr, flight_dep, week_day,week_no,week_year, flight_time
from Flight f,Schedule s,Week_Schedule w,Source_Destination_Route d
where f.id=s.id and w.id=s.id and d.sd_route_no=s.id and s.id=1;

Chcialbym zapytac, czy istnieje jakis sposob, zeby zrobic z tego procedure, ktore wpakuje te wszystkie dane do jednej tabeli, a dodatkowo bedzie pobierac ode mnie zmienna, ktora bedzie podstawiana w to miejsce s.id=1 ? Chodzi o to, zeby ta zmienna byla podawana przeze mnie przy wywolywaniu. Dodatkowo powiem, ze w selekcie mamy zarowno INTy jak i Varchary.

Pozdrawiam:)

0

http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

Generalnie kod wygląda to w ten sposób:

CREATE PROCEDURE procedura (adresid int)
BEGIN
  INSERT INTO Tabela (imie, nazwisko)
  SELECT a.imie, a.nazwisko FROM Adresy a WHERE a.id = adresid;
END;

a wywołanie w ten:

CALL procedura(1);
0
AdamPL napisał(a)

http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

Generalnie kod wygląda to w ten sposób:

CREATE PROCEDURE procedura (adresid int)
BEGIN
  INSERT INTO Tabela (imie, nazwisko)
  SELECT a.imie, a.nazwisko FROM Adresy a WHERE a.id = adresid;
END;

a wywołanie w ten:

CALL procedura(1);

Dzieki za odpowiedz:) probowalem robic w podobny sposob, jednak z pewnymi roznicami i nie dzialalo. Problem jest tylko taki, ze mam tutaj tabele TABELA, moge ja stworzyc, tylko, ze chcialbym zeby ona przed kazdym CALLem byla oprozniana. To znaczy, ze w momencie wywolania procedury zeby byla pusta. Czy musze kasowac ja recznie po kazdym wywolaniu ? czy musze ustalic klucz glowny itd? bo to ma byc tylko tymczasowa tabela, zeby zobaczyc co chce i moze zniknac:)

0

dobra, doszedlem sam do tego :)

Dzieki, bardzo przydala mi sie Twoja pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1