SQL MariaDB - funkcja - co jest źle ?

0

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

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

#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++ ?

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.

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