SQL MariaDB - funkcja - co jest źle ?

SQL MariaDB - funkcja - co jest źle ?
ZK
  • Rejestracja:około 19 lat
  • Ostatnio:4 miesiące
0

Co jest źle w tej funkcji ? Bo ona jest poprawnie napisana, a mimo to pokazuje błąd...

Kopiuj
DELIMITER //
CREATE FUNCTION odpal() 
RETURNS int DETERMINISTIC MODIFIES SQL DATA
	BEGIN 
    	DECLARE zwrot varchar(100) DEFAULT '';
        DECLARE i int DEFAULT 0;
        DECLARE id int DEFAULT 0;
        DECLARE maxx int DEFAULT 0;
        
        SET maxx=(SELECT MAX(`pID`) FROM `tabela2`);
        
        pobierz_ID: WHILE i<maxx DO
        	SET id=(SELECT `pID` FROM `tabela2`);
        	i=i+1;
        END WHILE pobierz_ID;
        
       	RETURN id; 
   	END; //
DELIMITER ;

SELECT odpal();

DROP FUNCTION odpal;

wywala mi błąd

Kopiuj
#1064 - Something is wrong in your syntax obok '=i+1;
        END WHILE pobierz_ID;
        
           RETURN id;
       END' w linii 13

w tej funkcji chodzi o to, aby pobrała ile jest MAX ilość rekordów i w pętli chcę aby mi zwracało ID rekordu.

Chciałbym jeszcze się zapytać czy w funkcjach SQL jest możliwość wyświetlania wyników przebiegu pętli tak, jak to ma miejsce w C++ ?


bla
edytowany 1x, ostatnio: zkubinski
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
2

Bo ona jest poprawnie napisana, a mimo to pokazuje błąd

Skoroś taki pewien, że jest napisana prawidłowo, zgłoś błąd twórcom MariaDB: https://mariadb.com/kb/en/bug-tracking/

Mi jednak wydaje się, że powinieneś mieć SET i=i+1;, zatem błąd leży po Twojej stronie.


edytowany 1x, ostatnio: Patryk27
Zobacz pozostałe 2 komentarze
ZK
o ile dobrze rozumiem podlinkowane rozwiązanie, to wyniki w logach się zapisuje ?
ZK
szkoda, że nie odpisałeś ale dzięki za podanie linka, bardzo przydało się to rozwiązanie :)
Patryk27
Niestety nie wiem dokąd zapisują się logi (nie miałem okazji debugować procedur w Marii) :/
ZK
zapisują się w tabeli, zgodnie z linkiem co mi dałeś ;) potem można je sobie wyeksportować do txt ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.