【发布时间】:2019-10-09 00:38:36
【问题描述】:
我正在尝试使用以下查询根据 jsonb 字段中的多个 json 属性将 jsonb 字段插入到表中
insert into testtable(data) values('{
"key": "Key",
"id": "350B79AD",
"value": "Custom"
}')
On conflict(data ->>'key',data ->>'id')
do update set data =data || '{"value":"Custom"}'
WHERE data ->> 'key' ='Key' and data ->> 'appid'='350B79AD'
上面的查询抛出如下错误
ERROR: syntax error at or near "->>"
LINE 8: On conflict(data ->>'key',data ->>'id')
我在这里遗漏了什么明显的东西吗?
【问题讨论】:
-
冲突目标必须是唯一的约束,或者作为快捷方式,必须是唯一的列。您不能选择 jsonb 对象的一部分。
-
所以。似乎唯一的方法是先获取 json 并更新或插入?
标签: postgresql jsonb upsert