当前位置:
首页 >
行业知识 >
关于postgresql 报错there is no unique or exclusion constraint matching the ON CONFLICT specification
行业知识
关于postgresql 报错there is no unique or exclusion constraint matching the ON CONFLICT specification
2026-11-08 17:44:26
来源:互联网转载
1.场景:执行upsret语句时报错there is no unique or exclusion constraint matching the ON CONFLICT specification
2.解决方法:找到CONFLICT 语句约束的条件,将其增加唯一约束,如果是id则主键,这次的问题是id主键被删除。
3.sql语句:
INSERT INTO 表名 (id, 字段) VALUES (, ) ON CONFLICT (id) DO UPDATE SET 字段= XXX RETURNING id
4.解释:CONFLICT表示冲突,用于upsert操作,这种写法跟update,insert的区别就是当执行 INSERT 操作时,如果数据表中不存在对应的记录,PostgreSQL 将会执行插入操作,否则将会更新这条数据,就无须在代码里面先去查询某条语句是否存在。
CONFLICT约束的值必须是唯一的,如果不唯一将会报错。
RETURNING id 表示此次查询将返回id。
上一篇:真人模拟服务器怎么开启?
下一篇:服务器从机柜怎么拆下?