PostgreSQL中的CTE是递归的吗?
我想知道postgresql中的递归查询,例如下面的查询是否是尾部递归的PostgreSQL中的CTE是递归的吗?,postgresql,recursion,common-table-expression,Postgresql,Recursion,Common Table Expression,我想知道postgresql中的递归查询,例如下面的查询是否是尾部递归的 WITH RECURSIVE category_tree(id, name, path) AS ( SELECT id, name, ARRAY[id] FROM categories WHERE parent_id IS NULL UNION ALL SELECT categories.id, categories.name, path || categories.id FROM category
WITH RECURSIVE category_tree(id, name, path) AS (
SELECT id, name, ARRAY[id]
FROM categories
WHERE parent_id IS NULL
UNION ALL
SELECT categories.id, categories.name, path || categories.id
FROM category_tree
JOIN categories ON categories.parent_id=category_tree.id
WHERE NOT categories.id = ANY(path)
)
SELECT *
FROM category_tree
ORDER BY path;
你到底想知道什么?术语递归背后的实际过程,如中所述,实际上是迭代。是的,我想你可以在某种意义上定义它…为什么?你问这个问题的根本原因是什么?你想知道关于停止行为的知识吗?