我正在尝试运行以下命令,但它没有更新具有NULL值的列或没有此键的列:
update A a set
a.jsonbcolumn = ('{"key":' 1 '}')
我正在使用Postgres 9.6.3,而jsonb_set对我不起作用。有什么建议吗?
谢谢
答案 0 :(得分:0)
jsonb_set()
是必经之路:
update a
set jsonbcolumn = jsonb_set(jsonbcolumn, '{key}', '1');
如果未创建密钥,则可能是因为列值为NULL
而不是空的JSON。在这种情况下,请使用coalesce()
:
update a
set jsonbcolumn = jsonb_set(coalesce(jsonbcolumn,'{}'), '{key}', '1');