Postgres upsert使用select的结果

RYS*_*RYS 6 sql postgresql upsert sql-insert

我正在尝试使用select中的值来追加postgres.看起来像:

INSERT INTO foo (a, b, c)
SELECT a_, b_, c_
-- hairy sql
ON CONFLICT (...condition...) DO UPDATE
SET "c"=???
Run Code Online (Sandbox Code Playgroud)

在冲突时,我想使用select语句中的一个值,但是找不到正确的别名语法.我怎么能用Postgres做到这一点?

a_h*_*ame 10

使用excluded关键字:

INSERT INTO foo (a, b, c)
SELECT a_, b_, c_
-- hairy sql
ON CONFLICT (...condition...) DO UPDATE
  SET c = excluded.c;
Run Code Online (Sandbox Code Playgroud)