尝试从邻接树中获取子项时,语法错误在“)”处或附近

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试从邻接树中获取子项时,语法错误在“)”处或附近相关的知识,希望对你有一定的参考价值。

我试图在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,并使用包含父id的字段的名称替换parent_id。所以我为所有实例都这样做了。但是,当我尝试运行此命令时,我得到一个超级模糊的'语法错误在或附近“)”'。

可能的原因是什么?

答案

这对我的SQL客户端DBeaver来说是一个问题。当我在psql中运行此命令时,它完全按预期工作。

以上是关于尝试从邻接树中获取子项时,语法错误在“)”处或附近的主要内容,如果未能解决你的问题,请参考以下文章

Npgsql Exception-“\”处或附近的语法错误

在“PARALLEL”处或附近创建 postgis 扩展语法错误

语法错误,“FLATTEN”处或附近出现意外符号

PostgreSQL 与 TypeORM 错误“在 \"Sep\" 处或附近出现语法错误”

Postgresql 字符串连接:错误:“msg”处或附近的语法错误

“TRUNCATE”处或附近的语法错误 - Aurora Postgres 10.12