我使用 INSERT INTO ON CONFLICT DO UPDATE
实现如果该行尚不存在,则 INSERT
它,如果存在,则执行 UPDATE
,但在每次更新时我都想添加一个字段的值。
假设表(test_table
)只有两列,它们的名称是:name
(带有UNIQUE
约束)和计算
,然后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
关于PostgreSQL 11.5 insert or update(每次操作都要添加字段值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58989316/