我使用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
如何解决此问题?
如果要汇总值,则应使用
DO UPDATE set count = test_table.count + EXCLUDED.count