![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 17.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
delimiter //
CREATE PROCEDURE threedaysfly1 (OUT param1 INT,OUT lotnisko1 varchar(99),OUT i INT,OUT k INT,OUT lotnisko2 varchar(99),OUT min_data DATE,OUT iterate2 INT) BEGIN Select COUNT(*) INTO param1 from airport; set i=0; petla1: LOOP set i=i+1; if i<param1 THEN Select lotnisko_wylotu into lotnisko1 from airport where id_airport=i; Select lotnisko_przylotu into lotnisko2 from airport where id_airport=i; Select min(data_wylotu) into min_data from avalibefly where lotnisko_wylotu=lotnisko1 and lotnisko_przylotu=lotnisko2; Select Count(*) into iterate2 from avalibefly where lotnisko_wylotu=lotnisko1 and lotnisko_przylotu=lotnisko2; set k=0; petla2: LOOP set k=k+1; IF k<iterate2 THEN DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_row_found = 1; INSERT INTO threedaysfly(id,lotnisko_wylotu,lotnisko_przylotu,link1,link2,cena) VALUES((Select lotnisko_wylotu from avalibefly where lotnisko_wylotu=lotnisko1 and lotnisko_przylotu=lotnisko2 and data_wylotu=min_data),(Select lotnisko_wylotu from avalibefly where lotnisko_wylotu=lotnisko2 and lotnisko_przylotu=lotnisko1 and data_wylotu=min_data+INTERVAL 3 DAY),(Select link from avalibefly where lotnisko_wylotu=lotnisko1 and lotnisko_przylotu=lotnisko2 and data_wylotu=mindata),(Select link from avalibefly where lotnisko_wylotu=lotnisko2 and lotnisko_przylotu=lotnisko1 and data_wylotu=mind_ata+INTERVAL 3 DAY),((Select cena from avalibefly where lotnisko_wylotu=lotnisko1 and lotnisko_przylotu=lotnisko2 and data_wylotu=min_data)+(Select cena from avalibefly where lotnisko_wylotu=lotnisko2 and lotnisko_przylotu=lotnisko1 and data_wylotu=min_data+INTERVAL 3 DAY))); set min_data=min_data+INTERVAL 3 DAY; ITERATE petla2; END IF; LEAVE petla2; END LOOP petla2; ITERATE petla1; END IF; LEAVE petla1; END LOOP petla1; END// delimiter ; Witam. Potrzebuje obsłużyć błąd który mi wyskakuje w tymże insercie, próbuje już jakiś czas, ale nie mogę sobie poradzić, ponieważ to moje początki z Mysql. Czy pomożecie jak obsłużyć ten wytłuszczony kod i żeby program po wykryciu błędu nie kończył pracy, a przechodził do kolejnej instrukcji set min_data=min_data+INTERVAL 3 DAY; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:48 |