PostgreSQL 11.5 insert or update(每次操作都要添加字段值)

标签 postgresql upsert

我使用 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/

相关文章:

postgresql - 具有编辑距离的组

sql - 仅当 sql 中发生更改时才更新值

javascript - Mongoose 的 findOneAndUpdate 和 upsert 中的重复键错误

mysql - ASP.net C#——将来自 MySQL 的数据集合并到 SQL Server 2008 表中

python - Postgresql 从 docker 容器 bash 中的表中选择

PostgreSQL 9.4,64 位 Windows : Unable to create user from commandline

postgresql - 如何在 pgAdmin v1.14.2 查询工具中将查询输出作为文本获取?

mongodb - 在带有 mgo 驱动程序的 Upsert 上使用 $setOnInsert

arrays - 如果条目不包含两个匹配的字段,mongo 添加到嵌套数组

javascript - Couchbase 部分更新未按预期工作