将 postgres connectby 重定向到 table

Redirect postgres connectby into a table

我正在使用 postgres 9.6 和 tablefunc 扩展,使用 connectby 函数生成分层 table。我的语法是

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

收集数据后,我想对其进行更多 post 处理,因此我需要将 connectby 命令的输出定向到 table。我尝试在 AS 短语的两边添加 INTO 但没有成功。这可能吗?

你吃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)

如果您已有一个 table,则此方法有效。另一方面,如果您想创建一个新的 table,则:

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)