清华主页 - 清华新闻 - 综合时讯 - 正文

关于postgresql 报错there is no unique or exclusion constraint matching the ON CONFLICT specification

1.场景:执行upsret语句时报错therer is no unique or exclusion constraint matching the ON CONFLICT specification。
2.解决方案:找到CONFLICT 语句约束条件,增加唯一的约束力,如果id是主键,这个问题是id主键被删除了。
3.sql语句:。

INSERT。INTO。表名。 (。id。,字段。)。VALUES。(。$。1。,$。2。)。ON。CONFLICT。(。id。)。DO。UPDATE。SET。字段。=XXX。RETURNING。id。 

4.解释:CONFLICT表示冲突c;upsert操作,这种写法与updateÿ相匹配c;insert的区别在于,当执行时 INSERT 操作时,如果数据表中没有相应的记录,PostgreSQL 将执行插入操作,否则会更新这个数据󿀌无需在代码中查询某个句子是否存在。
CONFLICT约束的值必须是唯一的,假如不是唯一会报错的人。
CONFLICT约束的值必须是唯一的,假如不是唯一会报错的人。

RETURNING id 这意味着此查询将返回ID。

2025-06-24 12:22:54

相关新闻

清华大学新闻中心版权所有,清华大学新闻网编辑部维护,电子信箱: news@tsinghua.edu.cn
Copyright 2001-2020 news.tsinghua.edu.cn. All rights reserved.