我在功能工作從喬Celkos書 - 樹木和層次結構在SQL爲Smarties一PostgreSQL的語法,同時存在循環
我試圖從鄰接表,但部分刪除子樹我的功能是不工作尚未。
WHILE EXISTS –– mark leaf nodes
(SELECT *
FROM OrgChart
WHERE boss_emp_nbr = −99999
AND emp_nbr > −99999)
LOOP –– get list of next level subordinates
DELETE FROM WorkingTable;
INSERT INTO WorkingTable
SELECT emp_nbr FROM OrgChart WHERE boss_emp_nbr = −99999;
–– mark next level of subordinates
UPDATE OrgChart
SET emp_nbr = −99999
WHERE boss_emp_nbr IN (SELECT emp_nbr FROM WorkingTable);
END LOOP;
我的問題:是WHILE EXISTS正確使用W/PostgreSQL的?我似乎陷入了困境,並陷入了這部分的無限循環中。也許有一個我沒有意識到的更正確的語法。