对于 postgresql 数据库中的一个 jsonb 字段,该字段存了一个 json,该 json 有个多个 key 和对应的 value,如何用一条语句对该 json 的多个 key 的 value 进行更新呢?或者怎么更新最好呢?
我更新一个 key 的语句如下: UPDATE table SET jsonb_ccolumn = jsonb_set(jsonb_ccolumn,json_path,value) WHERE [condition];
或者不用函数用操作符什么的???小白求教
1
yangg 2019-02-24 22:20:58 +08:00 1
SET jsonb_column = jsonb_column || {"aa:"1, "bb":2}
|
3
tinybaby365 2019-02-24 23:09:17 +08:00 1
select '{"a":1, "b":2, "c":3}'::jsonb || '{"a": 2, "b":1}'::jsonb;
{"a": 2, "b": 1, "c": 3} |
5
hellyeah OP @reus really?但是我看有人说 9.5 以上的可以部分更新。周末看到 mysql8 文档也可以部分更新啊(要求新的数据不能比更新前的长)
下文中修改数据部分有提到部分更新,什么情况呢? http://www.zgljl2012.com/postgresql-cun-qu-jsonb/?utm_source=tuicool&utm_medium=referral |
6
MonoBiao 2019-02-25 13:50:39 +08:00 1
9.5 的确增强了 jsonb 的运算符和函数的支持,但我认为并不可以“部分更新”,并且仍然需要获得行锁。可以参见官方文档 8.14.2.
|