Я нашел некоторую информацию, но некоторые из них не были четко объяснены или примеры были непонятны. Этот пример был успешно выполнен на PostgreSQL 12. Требуется частично изменить структуру JSON с PostgreSQL. JSONB используется в качестве типа данных.
Структура данных имеет следующий вид
{
"id":1,
"person":{
"name":"fred"
}
}
Запись данных должна быть изменена. Необходимо изменить свойство $.person.name
и добавить $.person.gender
.
select '{"id":1, "person" : { "name" : "fred" } }'::jsonb || '{"person": { "name" : "lisa", "gender" : "F" }}'::jsonb
Результат содержит соответствующие изменения.
{
"id":1,
"person":{
"name":"lisa",
"gender":"F"
}
}
Оператор обновления для столбца JSONB data
выглядит так
update t_person set data = data || '{"person": { "name" : "lisa", "gender" : "F" }}'::jsonb