Mam oto taką funkcję:
delimiter ;; CREATE FUNCTION test () returns varchar(20) begin CREATE TABLE SYLABY(id int PRIMARY KEY AUTO_INCREMENT, nazwa char(10)); INSERT INTO SYLABY (nazwa) VALUES ('da'); INSERT INTO SYLABY (nazwa) VALUES ('wa'); INSERT INTO SYLABY (nazwa) VALUES ('za'); INSERT INTO SYLABY (nazwa) VALUES ('po'); INSERT INTO SYLABY (nazwa) VALUES ('wo'); INSERT INTO SYLABY (nazwa) VALUES ('tu'); INSERT INTO SYLABY (nazwa) VALUES ('bu'); INSERT INTO SYLABY (nazwa) VALUES ('lo'); INSERT INTO SYLABY (nazwa) VALUES ('ki'); INSERT INTO SYLABY (nazwa) VALUES ('mi'); INSERT INTO SYLABY (nazwa) VALUES ('zu'); INSERT INTO SYLABY (nazwa) VALUES ('ne'); INSERT INTO SYLABY (nazwa) VALUES ('me'); INSERT INTO SYLABY (nazwa) VALUES ('cy'); SELECT nazwa FROM SYLABY ORDER BY RAND() LIMIT 1 INTO @zm1; SELECT nazwa FROM SYLABY ORDER BY RAND() LIMIT 1 INTO @zm2; SELECT nazwa FROM SYLABY ORDER BY RAND() LIMIT 1 INTO @zm3; SELECT concat(@zm1, @zm2, @zm3, 'ski'); RETURN 0; END; ;; DELIMITER ;
Funkcja ma wypelniac tabele losowymi danymi (oczywiscie pozniej będzie pętla While co spowoduje wypelnienie calej tabeli a nie tylko jednego wiersza)
Anyway problem w tym, że funkcja nie dziala.
Dostaje błąd: Not allowed to return a result set from a function.
W googlach są odpowiedzi, ale średnio je rozumiem. Mógłby ktoś coś doradzić?
pozdrawiam