我正在尝试使用从select语句中获取的值来进行Postgres的upsert操作。示例如下:
INSERT INTO foo (a, b, c)
SELECT a_, b_, c_
-- hairy sql
ON CONFLICT (...condition...) DO UPDATE
SET "c"=???
在冲突时,我想使用我的select语句中的一个值,但我找不到正确的语法来给它取别名。如何在Postgres中实现这个功能?
我正在尝试使用从select语句中获取的值来进行Postgres的upsert操作。示例如下:
INSERT INTO foo (a, b, c)
SELECT a_, b_, c_
-- hairy sql
ON CONFLICT (...condition...) DO UPDATE
SET "c"=???
在冲突时,我想使用我的select语句中的一个值,但我找不到正确的语法来给它取别名。如何在Postgres中实现这个功能?
使用 excluded
关键字:
INSERT INTO foo (a, b, c)
SELECT a_, b_, c_
-- hairy sql
ON CONFLICT (...condition...) DO UPDATE
SET c = excluded.c;