Postgres 10和11 insert规范说:
论冲突conflict_target conflict_action
我有张桌子:
create table c (
e text not null,
m text not null,
v numeric not null,
PRIMARY KEY (e, m)
)我也想做
insert into candle values (...)
on conflict do update set
v = 5但我发现了一个错误:
在冲突中,更新是否需要推理规范或约束名称提示:例如,关于冲突(column_name)
为什么我要提供一个令人困惑的目标?如何提供主键或其他列集?
发布于 2019-03-25 16:56:25
您可以有多个约束,因此可以有多个可选操作。
您只需指定列名:
insert into candle values (...)
on conflict (e,m) do update set
v = 5发布于 2019-03-25 21:07:58
是的,conflict_target是可选的,但只适用于DO NOTHING。
每文献资料
对于
ON CONFLICT DO NOTHING,指定一个conflict_target是可选的;如果省略,将处理与所有可用约束(和唯一索引)冲突的问题。对于ON CONFLICT DO UPDATE,必须提供一个conflict_target。
https://stackoverflow.com/questions/55342771
复制相似问题