Union All递归CTE PostgreSQL中的语法错误

时间:2018-10-02 11:23:00

标签: recursion syntax-error postgresql-9.3

我一直在努力使自己的逻辑适合于递归cte,因为这似乎是使用SQL解决层次结构问题的最佳方法。在下面运行此结构时,我得到

  

“ DROP”处或附近的语法错误   第7行:创建临时表allnewreleases AS(选择mc.changeset_id,...

想知道我们是否可以在递归cte的递归部分内创建和删除临时表?

create temp table maincompo AS(SELECT * from X)

create temp table allnew AS (SELECT * FROM Y inner join maincompo)
--anchor query starts--
(WITH RECURSIVE mainquery AS ((SELECT * FROM allnew )
--anchor query ends--   

 UNION ALL

 DROP TABLE maincompo
 DROP TABLE allnew

 create temp table maincompo AS(SELECT * from X inner join mainquery)
 create temp table allnew AS (SELECT * FROM Y inner join maincompo)
 SELECT * from allnew )

 SELECT * from mainquery)

是否存在这种可能??,请记住,必须将UNI ALL ALL中的临时表创建为每一项附加内容,以将其从递归查询追加到锚点查询。

0 个答案:

没有答案