将postgres connectby重定向到表中

2sbarzqh  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(314)

我使用带有tablefunc扩展的postgres9.6来生成一个使用connectby函数的层次表。我的语法是

SELECT * 
FROM connectby('depTree2', 'id', 'parentid', 'sequence', '{4472}',0)
AS t(keyid text, parent_keyid text, level int, pos int)

一旦我收集并获取了数据,我就需要对其进行更多的后处理,因此我需要将connectby命令的输出定向到一个表中。我试着在as短语的两边加上,但没有成功。这有可能吗?

mrwjdhj3

mrwjdhj31#

你知道吗 insert ... select ?

INSERT INTO target_table(keyid text, parent_keyid text, level int, pos int)
SELECT * 
FROM connectby('depTree2', 'id', 'parentid', 'sequence', '{4472}',0)
AS t(keyid text, parent_keyid text, level int, pos int)

如果您已经有一个表,这个方法就可以工作。另一方面,如果要创建新表,则:

CREATE TABLE target_table AS
SELECT * FROM connectby('depTree2', 'id', 'parentid', 'sequence', '{4472}',0)
AS t(keyid text, parent_keyid text, level int, pos int)

相关问题