PostgreSQL 11.5 insert or update(每次操作都要添加字段值)
PostgreSQL 11.5 insert or update (every operation should add the field value)
我使用 INSERT INTO ON CONFLICT DO UPDATE
来实现如果该行尚不存在,则 INSERT
它,如果它存在,则执行 UPDATE
,但我想在每次更新时添加一个字段的值。
假设table(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
我使用 INSERT INTO ON CONFLICT DO UPDATE
来实现如果该行尚不存在,则 INSERT
它,如果它存在,则执行 UPDATE
,但我想在每次更新时添加一个字段的值。
假设table(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