2017-07-07 41 views
2

我使用的是Postgres 9.6和我有一些行具有NULL值和一些有字典值像{"notify": false}一個JSONB列。如何使用`jsonb_set`與空列值

我希望有更多的字典鍵/值對更新的列值。

UPDATE accounts SET notifications = jsonb_set(notifications, '{"alerts"}', 'false'); 

如果我已經有像{"notify": false}這樣的值的情況下工作。最終的結果變得如預期{"alerts": false, "notifications": false}

但我想更新我們NULL的價值,沒有什麼是數據庫更新。

你能告訴我如何更新NULL的值,所以最終的結果是{"notify": false}。最終的結果變得如預期{"alerts": false}

+0

你嘗試'jsonb_set(合併(通知, '{}'),「{」警報「}」,「假」) –

回答

4

使用coalesce()

UPDATE accounts 
SET notifications = jsonb_set(coalesce(notifications, '{}'), '{"alerts"}', 'false') 

或更簡單:

UPDATE accounts 
SET notifications = coalesce(notifications, '{}') || '{"alerts": false}' 
相關問題