首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres:与隐性冲突目标的冲突

Postgres:与隐性冲突目标的冲突
EN

Stack Overflow用户
提问于 2019-03-25 16:51:04
回答 2查看 4K关注 0票数 6

Postgres 10和11 insert规范说:

论冲突conflict_target conflict_action

我有张桌子:

代码语言:javascript
复制
create table c (
    e text not null,
    m text not null,
    v numeric not null,
    PRIMARY KEY (e, m)
)

我也想做

代码语言:javascript
复制
insert into candle values (...) 
    on conflict do update set
            v = 5

但我发现了一个错误:

在冲突中,更新是否需要推理规范或约束名称提示:例如,关于冲突(column_name)

为什么我要提供一个令人困惑的目标?如何提供主键或其他列集?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-25 16:56:25

您可以有多个约束,因此可以有多个可选操作。

您只需指定列名:

代码语言:javascript
复制
insert into candle values (...) 
on conflict (e,m) do update set
  v = 5
票数 3
EN

Stack Overflow用户

发布于 2019-03-25 21:07:58

是的,conflict_target是可选的,但只适用于DO NOTHING

文献资料

对于ON CONFLICT DO NOTHING,指定一个conflict_target是可选的;如果省略,将处理与所有可用约束(和唯一索引)冲突的问题。对于ON CONFLICT DO UPDATE,必须提供一个conflict_target

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55342771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档