小编med*_*nzo的帖子

UPSERT 上的 UPDATE 语句不增加值

我有以下查询:

INSERT INTO ReservationCounter (student_id, reservation_count) VALUES (1, 1)
ON CONFLICT (student_id) DO
UPDATE SET reservation_count=excluded.reservation_count+1;
Run Code Online (Sandbox Code Playgroud)

当没有冲突时就INSERTS成功了。

然而,当存在冲突时,该UPDATE语句实际上并不用增量更新值。

当我第一次在冲突时运行它时,它会按预期返回 2,但是当我再次运行它时,我希望它会增加 2 到 3(因为reservation_count=excluded.reservation_count+1)。它没有这样做,它再次返回 2;让我相信那reservation_count总是 1。

我究竟做错了什么?

postgresql upsert

3
推荐指数
1
解决办法
4539
查看次数

标签 统计

postgresql ×1

upsert ×1