可能重复:
插入,重复更新(postgresql)
无法从 postgres 中的 UPDATE RETURNING 子句中选择
帮助理解我的语法错误。我尝试在 PosgreSql 中实现 upsert 查询:
create table tbl( key int, val int);
insert into tbl(key,val)
select distinct(key), 0 from unnest('{0,1,2,3,4,5}'::int[]) as key
where key not in (
update tbl set val = 1
where key = any('{0,1,2,3,4,5}'::int[])
returning key
);
错误是:
ERROR: syntax error at or near "tbl"
ROWS 6: update tbl set val = 1
^
********** Error **********
ERROR: syntax error at or near "tbl"
SQL state: 42601
Character: 167
但是没有插入部分的更新子查询效果很好。
有没有最简单的方法来进行更新插入查询?