我无法在postgres函数的临时表中插入值

时间:2019-10-21 11:14:11

标签: postgresql

我已经在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 ...

您能帮我吗? 谢谢。

1 个答案:

答案 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;