我有以下plggsql函數,它在pg 8.3及更高版本上工作良好,但我需要將其轉換回pg 8.1數據庫,並且我無法縫合才能正確使用它。將plpgsql遞歸函數轉換回pg8.1
任何提示?我需要擺脫「返回查詢」,因爲它尚未在8.1中引入...
CREATE OR REPLACE FUNCTION specie_children (specie_id INT, self BOOLEAN)
RETURNS SETOF specie AS
$BODY$
DECLARE
r specie%ROWTYPE;
BEGIN
IF self THEN
RETURN QUERY SELECT * FROM specie WHERE specieid = specie_id;
END IF;
FOR r IN SELECT * FROM specie WHERE parent = specie_id
LOOP
RETURN NEXT r;
RETURN QUERY SELECT * FROM specie_children(r.specieid, FALSE);
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql';
我該如何翻譯?
五月與此:http://stackoverflow.com/questions/53108/is-it-possible-to-make-a-recursive-sql-query – Luxspes 2012-07-24 10:02:24
你知道8.1已經死了,不受支持? 8.3即將推出。你應該真的轉向當前的版本。 – 2012-07-24 10:32:51
只要用'specie_children'做你已經用'specie'做了什麼。你甚至可以使用相同的變量,因爲類型必須匹配。 – 2012-07-24 13:06:28