Рассмотрим ситуацию, когда в Базе Данных (БД) имеется сохранённый в виде строки сериализованный JSON объект, а нам требуется добавить в него новый узел. Конечно, можно взять язык программирования, считать значение из БД, изменить его и перезаписать в БД. Но хочется воспользоваться средствами самого SQL для подобной операции.
Как это можно сделать в MSSQL
:
1 | DECLARE @json NVARCHAR(2000); |
Обращаю внимание на необходимость применения функции JSON_QUERY(...)
к содержимому добавляемого узла, иначе вставляемые кавычки будут избыточно экранированы.
Как это можно сделать в PostgreSQL
:
1 | DO $$ |
Последний параметр со значения true в функции jsonb_set
именуется create_if_missing и является опциональным.
В случае удаления ненужного узла из JSON объекта требуется установить значение узла в NULL
, как показано ниже для MSSQL
:
1 | DECLARE @json NVARCHAR(2000); |