Мой столбец (свойства) jsonb выглядит следующим образом:
{
"key1" : "v1",
"key2" : "v2",
...
}
Теперь мне нужно обновить этот столбец (свойства) и добавить в него следующий вложенный ключ / val:
"Fruit":{
"Apple":{
"tags":[
"color_is_green",
"taste_good",
"smell_like_XX"
]
}
}
Интересно, существует ли запрос postgresql, который может напрямую обновить этот столбец?
Я пытался:
UPDATE <table>
SET
properties = jsonb_set(properties,'{"Fruit","Apple","tags"}','"color_is_green","taste_good","smell_like_XX"');
Но он выдал ошибку.
[22P02] ERROR: invalid input syntax for type json Detail: Expected end of input, but found ",". Position: 106 Where: JSON data, line 1: "obs_eng_status_faild",...
Первоначально мы извлекали весь столбец свойств и преобразовывали его в объект Java, а также добавляли / удаляли свойства в коде Java. Но теперь, из-за большого количества записей в БД, удаление всех свойств и сохранение в памяти приводят к снижению производительности (нехватке памяти), они приходят с идеей обновить каталог этих свойств в запросе и посмотреть, сможет ли он сэкономить место.