一尘不染

jsonb字段中的PostgreSQL重命名属性

json

在Postgresql 9.5中,是否可以重命名jsonb字段中的属性?

例如:

{ "nme" : "test" }

应该重命名为

{ "name" : "test"}

阅读 248

收藏
2020-07-27

共1个答案

一尘不染

UPDATE使用删除( -
)并连接(||)运算符
,如:

create table example(id int primary key, js jsonb);
insert into example values
    (1, '{"nme": "test"}'),
    (2, '{"nme": "second test"}');

update example
set js = js - 'nme' || jsonb_build_object('name', js->'nme')
where js ? 'nme'
returning *;

 id |           js            
----+-------------------------
  1 | {"name": "test"}
  2 | {"name": "second test"}
(2 rows)
2020-07-27