You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用主键名称配置ON CONFLICT报错,如何适配主键变更?

用主键约束名称实现ON CONFLICT冲突处理

问题原因

你写的ON CONFLICT (cq_pk)会被PostgreSQL解析成列名,但cq_pk是主键约束的名称而非列名,所以才会报cq_pk is not a column错误。

正确写法

要指定主键约束名称而非列列表,需要使用ON CONFLICT ON CONSTRAINT语法:

ON CONFLICT ON CONSTRAINT cq_pk DO UPDATE
SET
    count_1 = count_1_old

适配场景说明

这种写法直接绑定主键约束的名称,后续如果主键的列定义发生变更(比如单主键改复合主键、替换主键列),只要主键约束的名称保持cq_pk不变,这条SQL语句就无需修改,正好适配你需要的场景。


内容的提问来源于stack exchange,提问作者Chicken Sandwich No Pickles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:35:54