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

时间:2019-02-01 05:44:35

标签: postgresql sql-update jsonb

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

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

任何解决方案吗?

1 个答案:

答案 0 :(得分:1)

据我了解,在这种情况下,您似乎不需要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.

Demo