Postgres使用select的结果进行upsert[英] Postgres upsert using results from select

本文是小编为大家收集整理的关于Postgres使用select的结果进行upsert的处理方法,想解了Postgres使用select的结果进行upsert的问题怎么解决?Postgres使用select的结果进行upsert问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试使用来自选择的值对 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;

本文地址:https://www.itbaoku.cn/post/1763806.html