我已经在PostgreSQL中创建了一个临时表
create temporary table tempTable(
val int
)
我还有另一个表newTable,其中包含以下数据:
val
5
6
0
8
7
0
9
2
0
但是我的功能
create or replace function getval(
out valOut int
)
As $$
Begin
insert into newTable values(5) returning inserted.val into tempTable
values(inserted.val);
End; $$
language plpgsql;
我遇到以下错误:
错误:“临时表”不是已知变量
第6行:...到newTable values(5),将insert.val返回到tempTable ...
您能帮我吗? 谢谢。
答案 0 :(得分:1)
您不能使用returning
指定表名。
为此,您需要chain two CTEs:
with new_rows as (
insert into newtable (val) values (5)
returning *
)
insert into temptable (val)
select val
from new_rows;