pgsql on conflict(id)do update return“列引用”id“不明确”

0sgqnhkj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(363)

我有个错误。
pq:列引用“id”不明确
我可以通过添加表名来解决这个问题,其中t.id=$1
但为什么我有“暧昧”?

INSERT INTO t(id)
VALUES ($1)
ON CONFLICT (id)
DO UPDATE
SET 
    id=10
WHERE id = $1
62o28rlo

62o28rlo1#

您需要指定 where 子句引用的是表中已有的数据或正在进入的数据。大概你打算:

INSERT INTO t(id)
    VALUES (7)
    ON CONFLICT (id)
    DO UPDATE SET id = 10
    WHERE excluded.id = 7;

使用 excluded 对于行中已有的值(该行被约束“排除”)。

相关问题