В Postgres 9.5+ можете да обедините JSONB по следния начин:
select json1 || json2;
Или, ако е JSON, принудително към JSONB, ако е необходимо:
select json1::jsonb || json2::jsonb;
Или:
select COALESCE(json1::jsonb||json2::jsonb, json1::jsonb, json2::jsonb);
(В противен случай всяка нулева стойност в json1
или json2
връща празен ред)
Например:
select data || '{"foo":"bar"}'::jsonb from photos limit 1;
?column?
----------------------------------------------------------------------
{"foo": "bar", "preview_url": "https://unsplash.it/500/720/123"}
Поздравления на @MattZukowski, че посочи това в коментар.