【问题标题】:Postgres upsert using results from selectPostgres upsert 使用来自 select 的结果
【发布时间】:2017-06-09 20:28:28
【问题描述】:

我正在尝试使用来自选择的值对 postgres 进行 upsert。它看起来像:

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

在发生冲突时,我想使用我的 select 语句中的值之一,但我找不到正确的语法来给它取别名。如何使用 Postgres 做到这一点?

【问题讨论】:

    标签: sql postgresql sql-insert upsert


    【解决方案1】:

    使用excluded 关键字:

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

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 2013-06-30
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2020-04-15
      • 2012-03-12
      相关资源
      最近更新 更多