2017-04-03 33 views
0

我有一個表,其中data字段具有JSONB類型和許多其他數據之間我有一個notesdata JSON值,其中我存儲一個註釋數組。Postgres替換JSONB字段內的數組

每個音符有(至少)兩個字段:titlecontent

有時我必須用不同的列表替換整個列表中的筆記,但不會影響我的json記錄中的任何其他字段。

我想是這樣的: UPDATE mytable SET data = jsonb_set("data", '{notes}', '[{ "title": "foo1" "content": "bar"'}, { "title": "foo2" "content": "bar2"}]', true) WHERE id = ?

我得到一個異常(通過JS包裝) error: invalid input syntax for type json

我應該如何正確使用jsonb_set功能?

回答

0

你有一個流浪單引號和逗號缺失在JSON有效載荷

而不是

[{ "title": "foo1" "content": "bar"'}, { "title": "foo2" "content": "bar2"}] 
       ^   ^    ^

應該相當期待

[{ "title": "foo1", "content": "bar"}, { "title": "foo2", "content": "bar2"}] 
+0

OMG,謝謝。我今天很累:) – geujv

+0

沒問題。很高興幫助:) – peterm