У меня есть столбец типа json с именем «attr», который использовался для хранения списка, включая некоторые dict, например [{"foo":1}, {"foo":2}, {"foo":3}]
.UPDATE столбец типа json в PostgreSQL
Теперь я хочу расширить список до [{"foo":1}, {"foo":2}, {"foo":3}, {"foo":4}]
. Конечно, я могу использовать запрос sql:
update tbl
set attr='[{"foo":1}, {"foo":2}, {"foo":3}, {"foo":4}]'::json;
Однако мне нужно выполнить его на своем веб-сервере. Поэтому я должен выбрать прежнее значение, расширить список и затем обновить его в таблице.
Я думаю, если есть способ использовать некоторые функции PostGreSQL сделать это как array_to_json
или json_array_elements
Я написал этот вопрос:
update tbl
set attr = json_build_array(json_array_elements(attr), '{"foo":4}'::json);
Но он получил неправильный результат.
Спасибо за ваш ответ! Это мне очень помогает! – PikeSZfish