Postgres JSON字段怎么修改key的名称

admin2024-07-05  33

场景

当你不小心将 key 的名称写错了(人员类别:多了一个冒号),或者想把引文改为中文(type改为类型

大致思路是添加一个新的 key,然后将旧的 key 删除

sql语句

假如 JSON 列为 extra

  • 可以使用 extra::jsonb ->> 'type' 获取到 type 的值
  • 可以使用 extra::jsonb - 'type'type 删除
  • 可以使用 jsonb_set 来修改 json 列中的值

学习了以上知识点,就可以组合使用,最终的 sql 语句如下:

UPDATE table_name
SET extra = jsonb_set(extra::jsonb - 'type', '{类型}', extra::jsonb ->> 'type')
WHERE extra ->> 'type' is not null;

参考链接:

  • http://www.postgres.cn/docs/12/functions-json.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!