Предположим, у меня есть следующий столбец и содержимое в таблице базы данных Postgres для конкретной строки:
jsonData
{
"fruitMap": {
"sellerStrategy": "aggressive"
},
"fruitAvailable": ["peach", "pear", "melon", "apple"]
}
Я бы хотел вставить в "fruitAvailable" значение "star_fruit", если и только если "star_fruit" еще не существует.
Так что: "fruitAvailable": ["peach", "pear", "melon", "apple", "star_fruit"]
Я пробовал все виды вещей, чтобы проверить это, прежде чем писать оператор вставки, например:
select jsonData::jsonb->>'fruitAvailable' || '{"star_fruit"}'
from fruitVendor
where vendorId = 'Peachville'
Это дает:
["peach", "pear", "melon", "apple"]{"star_fruit"}
Может кто-нибудь дать мне простой способ вставить в массив fruitAvailable значение star_fruit, если star_fruit не существует, учитывая, что у нас работает Postgres 9.5.13, а jsonb_insert недоступен (?)
Извините, если я нарушаю какие-либо из приведенных выше фактов, я инженер-тестировщик, а не администратор баз данных или разработчик программного обеспечения.