Hallo,
ich bastle grade erstmals mit Stored Procedures. Grundlage ist eine Tabelle contract mit zwei Spalten id und parent_id, wodurch eine Hierarchie abgebildet wird. Ich möchte durch wiederholtes Abfragen von parent_id an die Wurzel des Baums kommen ... Adam sozusagen *g*
Ich hab folgendes:
CREATE FUNCTION contractMain (id INT)
RETURNS INT
BEGIN
DECLARE parent_id INT;
DECLARE cur1 CURSOR FOR SELECT parent_id FROM contract WHERE id = ?;
DECLARE CONTINUE HANDLER FOR NOT FOUND
BEGIN
CLOSE cur1;
RETURN parent_id;
END;
REPEAT
OPEN cur1;
FETCH cur1 INTO parent_id;
CLOSE cur1;
END REPEAT;
END;
Wie man sieht, möchte ich denselben Cursor mehrfach verwenden, allerdings in der WHERE-Klausel verschiedene Werte einsetzen (da wo jetzt das Fragezeichen ist), nämlich den jeweils aktuellen Wert der Variablen parent_id. Wie geht das?
Ich verwende MySQL 5.0.16.
BTW, das ist meine erste Stored Procedure, und ich hab sie noch nicht getestet. Wenn noch was falsch sein sollte, bitte mitteilen :-)
Danke!
Peter