Wenn Du von "klassischem Parent-Child Baum" schreibst, dann meinst Du eine Struktur der Form K (id, parent_id, index, ...)? Die auf diesen Strukturen operierenden Funktionen sind sehr aufwändig. Vielleicht möchtest Du für deine Tabelle das Konzept "Nested Sets" ins Auge fassen. Die Struktur ist dann N (id, left_, right_, ...) und die von Dir gesuchte Funktion, wie auch viele andere Funktionen auf dieser Struktur, ist dann sehr einfach:
Code:
CREATE PROCEDURE successor (
id Bigint )
RETURNS (
nextid BIGINT )
AS
BEGIN
SELECT FIRST 1 id
FROM n
WHERE left_ > (SELECT left_ FROM n WHERE id = :id)
ORDER BY left_
INTO :nextid;
END
Grüße vom marabu