Hmhmhm, ich habe jetzt zunächst mit einer SP rumgespielt, wobei ich hier bisher nur mit einfachen Einzeilern rumgemacht habe.
MySQL meckert einen Fehler in der letzten Zeile des folgenden an:
SQL-Code:
CREATE FUNCTION makefullname (name VARCHAR(255), pid INT)
RETURNS VARCHAR(255)
BEGIN
DECLARE name2 VARCHAR(255);
DECLARE pid2 INT;
DECLARE c CURSOR FOR SELECT name, parentID FROM testtabelle WHERE id=pid;
OPEN c;
FETCH c INTO name2, pid2;
IF pid2!=0 THEN
RETURN CONCAT(name, ' ', makefullname(name2, pid2));
ELSE
RETURN name;
CLOSE c;
END;
"END;" ist fast sicher richtig
. Aber wo ist mein Patzer wirklich? Zudem scheint mein
MySQL server die Variable zum Verstellen der Rekursionstiefe nicht. Lustigerweise benennt das selbe Manual für die selbe
MySQL Version (5.1) sowohl die Option zum Einstellen der maximalen Tiefe, schreibt in der Sektion zu Einschränkungen von SPs aber gleichzeitig
"- Stored functions cannot be used recursively. Watten nu!? *seufz*
Das mit dem JOIN wäre so sexy gewesen. Im Zweifel werd ich morgen auch noch mal temporäre Tabellen versuchen - ich hoffe, dass das nicht zu langsam wird :\
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)