我有一个表data
字段有JSONB类型,在许多其他数据中,我在notes
json值中有一个data
键,我存储了一系列音符。
每个音符都有(至少)两个字段:title
和content
。
有时我必须用不同的列表替换整个笔记列表,但不影响我的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 :(得分:0)
您的JSON有效负载中有一个迷路单引号和缺少逗号
而不是
[{ "title": "foo1" "content": "bar"'}, { "title": "foo2" "content": "bar2"}]
^ ^ ^
它应该看起来
[{ "title": "foo1", "content": "bar"}, { "title": "foo2", "content": "bar2"}]