我使用的是Postgres 9.6,我有一个JSONB列,其中一些行有NULL
值,有些行有像{"notify": false}
这样的dict值。
我想用更多的字典键/值对更新列值。
UPDATE accounts SET notifications = jsonb_set(notifications, '{"alerts"}', 'false');
适用于我已经拥有像{"notify": false}
这样的值的情况。最终结果变得如预期的那样{"alerts": false, "notifications": false}
。
但我试图更新我们NULL
的价值,数据库中没有任何更新。
你能否告诉我如何更新NULL
值,所以最终结果将是像{"notify": false}
这样的值。最终结果变得如预期的那样{"alerts": false}
使用coalesce()
:
UPDATE accounts
SET notifications = jsonb_set(coalesce(notifications, '{}'), '{"alerts"}', 'false')
甚至更简单:
UPDATE accounts
SET notifications = coalesce(notifications, '{}') || '{"alerts": false}'