2017-12-21 30 views
0

PostgreSQL 9.6의 PostgreSQL guide to get children from an adjacency tree을 따르려고했습니다. 필드의 이름으로인접성 트리에서 자식을 가져 오려고 할 때 ")"또는 근처에 구문 오류가 발생했습니다.

WITH RECURSIVE tree AS (
    SELECT id, ARRAY[]::INTEGER[] AS ancestors 
    FROM test WHERE parent_id IS NULL 

    UNION ALL 

    SELECT test.id, tree.ancestors || test.parent_id 
    FROM test, tree 
    WHERE test.parent_id = tree.id 
) SELECT * FROM tree WHERE 3 = ANY(tree.ancestors); 

나의 이해는 단순히 액세스하려는 테이블의 이름으로 test를 교체해야한다는, 그리고 parent_id : connivence를 들어 나는 여기에 제시 명령을 재현 할 수 있습니다 부모 ID가 포함 된 그래서 모든 경우에 대해 그렇게했습니다. 그러나이 명령을 실행하려고 할 때 " '또는'근처에서 매우 모호한 '구문 오류가 발생합니다.

가능한 원인은 무엇입니까?

답변

0

이것은 내 SQL 클라이언트 인 DBeaver에서 문제가되는 것으로 나타났습니다. psql에서이 명령을 실행하면 예상대로 정확하게 작동합니다.