
对于 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 年 2 月 24 日 SET jsonb_column = jsonb_column || {"aa:"1, "bb":2} |
3 tinybaby365 2019 年 2 月 24 日 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 年 2 月 25 日 9.5 的确增强了 jsonb 的运算符和函数的支持,但我认为并不可以“部分更新”,并且仍然需要获得行锁。可以参见官方文档 8.14.2. |