PostgreSQL 11.5插入或更新(每个操作都应添加字段值)

问题描述 投票:1回答:1

我使用INSERT INTO ON CONFLICT DO UPDATE来实现,如果该行尚不存在,那么它会INSERT,如果存在,则执行UPDATE,但是在每次更新时,我都想添加一个字段的值。

假设表(test_table)只有两列,它们的名称是:name(具有UNIQUE约束)和count,而INSERT这是:

values ('postgres',10)

10次,然后我希望结果是:

name         count

postgres     100

如何编写SQL?这是我使用的:

INSERT INTO test_table(name,count)
VALUES ('postgres', 10)
ON CONFLICT(name)
DO UPDATE set count = EXCLUDED.count + 10

此结果是

name         count

postgres     20

如何解决此问题?

postgresql upsert
1个回答
1
投票

如果要汇总值,则应使用

DO UPDATE set count = test_table.count + EXCLUDED.count
© www.soinside.com 2019 - 2024. All rights reserved.