如何在 postgresql 中使用 jsonb_set 更新空的 jsonb 列?

Jes*_*man 2 postgresql sql-update jsonb

我的目的是jsonb使用jsonb_set具有多个键值对的对象来更新当前为空的列。更新命令成功执行,但它没有更新任何内容,该列仍然为空。我正在尝试以下查询。

UPDATE tab 
  set value = jsonb_set(value, '{}', '{"a" : 100, "b" : [100, 200]}'::jsonb) 
where id = 100;
Run Code Online (Sandbox Code Playgroud)

有什么解决办法吗?

Kau*_*yak 5

jsonb_set据我了解,这种情况似乎不需要。只需将字符串转换为即可jsonb进行更新

UPDATE tab 
  set value = '{"a" : 100, "b" : [100, 200]}'::jsonb
where id = 100 
--and value is null; --additional check if you need.
Run Code Online (Sandbox Code Playgroud)

演示