我在“资产”表中有一个名为“参数”的 json 列。json 是嵌套的并具有以下结构:
{
"params1": {"k": 1.1, "efficiency": 0.7},
"params2": {"k": 1.9, "C_max": 100.0, "C_min": 10.0}
}
Run Code Online (Sandbox Code Playgroud)
我只想更新“params2”中的一个值“k”,并保持其余值不变。我尝试使用以下代码:
update "Assets"
set "Parameters" = "Parameters"::jsonb || '{"params2":{"k":2.2}}'::jsonb
where "Id" = 185;
Run Code Online (Sandbox Code Playgroud)
这导致
{
"params1": {"k": 1.1, "efficiency": 0.7},
"params2": {"k": 2.2}
}
Run Code Online (Sandbox Code Playgroud)
因此“params2”中的其余参数被删除,这是不希望的。修改“k”并保持其余部分不变的方法是什么?