我想要一个查询来创建一个包含Postgres中存储过程函数输出的表。
SQL:
CREATE TEMP TABLE new_project AS select project_insert('1','test2343','tew3234','ccc',1);
错误:
ERROR: 42P16: column "projects_insert" has pseudo-type record
LOCATION: CheckAttributeType, heap.c:513
注意: project_insert
是一个插入值并返回插入值的函数
答案 0 :(得分:1)
问题是project_insert
已使用RETURNS record
声明,并且该类型对于列定义是非法的。
您必须在查询中指定结果列的名称和类型,如下所示:
CREATE TEMP TABLE new_project AS
SELECT x, y, z
FROM project_insert('1','test2343','tew3234','ccc',1)
AS p(x integer, y text, z bytea);
用适当的名称和类型替换名称和类型。
有关详细信息,请参阅the documentation。