PostgreSQL 更新JSON,JSONB字段的操作

直接使用

update 表名 set 列名 = (jsonb_set(列名::jsonb,'{key}','"value"'::jsonb)) where 条件 

要注意里面的单引号和双引号。

补充:向PostgreSQL中json中加入某个字段 或者更新某个字段的SQL语句

需求:通过SQL的方式,对JSON里面的某个字段统一处理,更新成一个新值

1、向PostgreSQL中json中加入某个字段。例如:向users表中id为3的data列中加入 {“uptate_data”: “7”}

执行SQL:

update users set data = '{"uptate_data": "7"}'::jsonb where id = 3;

执行效果如下图:

2、向PostgreSQL中json中更新某个字段。例如:例如:向users表中id为3的data列中再加入 {“uptate_minute”: “10”}

执行SQL:

update users set data = data::jsonb || '{"uptate_minute": "10"}'::jsonb where id = 3;

执行效果如下图:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • postgresql删除主键的操作

    ALTER TABLE tablename DROP CONSTRAINT primaryname. talbename:表示表名 primaryname:表示主键名 例子: postgres=# \d c_tab; Table "public.c_tab" Column | Type | Modifiers ---------------+-----------------------------+----------- uptime | timestamp without time

  • PostgreSQL数据库中匿名块的写法实例

    看代码吧~ test=# DO $$DECLARE i record; test$# BEGIN test$# FOR i IN 1..10 test$# LOOP test$# execute 'select loop_insert(1)'; test$# END LOOP; test$# END$$; DO test=# 看匿名块的执行效果: test=# select count(*) from lineitem; count ------- 7000 (1 row) test=# sel

  • PostgreSQL 逻辑复制 配置操作

    #### PostgreSQL Logical Replication (逻辑复制) #### Logical Replication (逻辑复制) 为PostgreSQL自己提供的一种方案,主要是通过一方 发布,一方订阅,来实现彼此共同关注的一种技术. 服务器 | 功能 | 10.10.56.16 | 发布者 P1_pub表 | | 10.10.56.17 | 发布者 P2_pub表 | | 10.10.56.19 | 订阅者 P_sub表 | 背 景 一些数据根据业务拆分成一部分P1表.一部

  • postgresql 查看当前用户名的实现

    查看当前连接的用户名: foo=#select * from current_user; 或 foo=#select user; 查看所有用户名: foo=#\du 补充:postgres 用户管理 首次安装完成 pg 数据库后,会默认自带一个用户, 用户名: postgres 密码: postgres 可以使用命令 \du 查看数据库用户 创建新用户: create user dev with password '******'; 创建完成后,使用如下语句登录: psql -Udev -W 以

  • Postgresql的日志配置教程详解

    背景 公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开.经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理). 我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重启,最后看了pg的日志滚动,恢复正常了.以下是我梳理的关于pg的日志配置项. 配置详解 配置文件:postgresql.conf 配置1:日志开启与关

  • SpringBoot连接使用PostgreSql数据库的方法

    一.介绍 此次更新时间:2020-10-28,现在是上班时间,偷更一下.其实使用IDEA的话无需配置Maven什么的,如果你们公司不是强制要求使用Eclipse的话,只需要有个JDK的环境即可,IDEA自带了一个版本的Maven,还是挺新的,目前IDEA最新版2.2.3的版本.我们也不用按照下面这个步骤去下载Spring Initializr,我们在IDEA中新建项目选择到Maven就行了,干净简洁. 目前在Resources目录下的application大多数是使用yml语法了.现在已经太长时

  • PostgreSQL 更新JSON,JSONB字段的操作

    直接使用 update 表名 set 列名 = (jsonb_set(列名::jsonb,'{key}','"value"'::jsonb)) where 条件 要注意里面的单引号和双引号. 补充:向PostgreSQL中json中加入某个字段 或者更新某个字段的SQL语句 需求:通过SQL的方式,对JSON里面的某个字段统一处理,更新成一个新值 1.向PostgreSQL中json中加入某个字段.例如:向users表中id为3的data列中加入 {"uptate_data&

  • postgresql 实现修改jsonb字段中的某一个值

    我就废话不多说了,大家还是直接看代码吧~ UPDATE tablename SET tags = jsonb_set(tags-'landuse_area', '{landuse_area}',('"' || round((ST_Area(ST_Transform(geom,4527)) * 0.0015) :: NUMERIC,3) || '"')::jsonb, TRUE) WHERE tags @> '{"name":"张三"}';

  • 在golang xorm中使用postgresql的json,array类型的操作

    xorm支持各种关系数据库,最近使用postgresql时,总是踩到一些坑,在此记录下解决方式. 在使用postgresql的array类型时,查询有点问题,xorm的官方文档给出重写的方式,但是不是很清晰: 官方文档链接:http://xorm.io/docs 也就是说碰到基础库不支持的类型,需要我们去重写ToDB.FromDB方法,废话不多说直接上代码: 比如int8[]类型,自定一个Int64Array type Int64Array []int64 func (s *Int64Array

  • mysql中json类型字段的基本用法实例

    目录 前言 基本环境 JSON类型字段常用操作 插入JSON类型数据 查询JSON类型数据 更新JSON类型数据中的特定字段 匹配JSON类型数据中的特定字段 结语 前言 mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们主要来梳理一下我们在日常工作中使用实践 基本环境 my

  • SQL Server解析/操作Json格式字段数据的方法实例

    目录 1 json存储 2 json操作 3其他 总结 1 json存储 在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,json的函数不支持. 2 json操作 主要介绍5个函数: (1)openJson:打开Json字符串 (2)IsJson:判断一个字符串是不是合法的Json格式.是返回1,否返回0,null返回null. (3)Json_Value:从Json字符串中提取值

  • MySQL更新存放JSON的字段、\“ 转义成 “的问题描述

    目录 问题描述 问题排查 解决方案 本篇介绍在执行MySQL线上变更时遇到的问题,表现为"更新JSON字段时,实际更新的值与SQL语句中的值不一致,JSON格式错误",如下: 问题描述 处理线上问题,需要新插入一条记录:将原JSON粘贴出来,修改部分字段,然后提交SQL更新语句,原始JSON如下: { "playerQualifyType": 1, "surveyId": 14, "playerRegisterEndTime"

  • Postgresql数据库中的json类型字段使用示例详解

    目录 1. Json概述 2. Postgresql数据库中使用Json类型字段 2.1. 创建表定义字段信息 2.2. 增加 2.3. 查询键值 2.3.1. 查询键 2.3.2. 查询值 2.3.3. where查询条件使用json键值作为条件 PostgreSQL 最重要的文档性数据类型就是JSON了,与 MongoDB 的BSON相比较,PostgreSQL 或许更加强大,因为它能与原有的关系性范式兼容,给数据库存储与维护带来了更多的可行性和便利性. 1. Json概述 JSON 代表

  • 介绍PostgreSQL中的jsonb数据类型

    PostgreSQL 9.4 正在加载一项新功能叫jsonb,是一种新型资料,可以储存支援GIN索引的JSON 资料.换言之,此功能,在即将来临的更新中最重要的是,如果连这都不重要的话,那就把Postgres 置于文件为本数据库系统的推荐位置吧. 自从9.2开始,一个整合JSON 资料类型已经存在,带有一整套功能(例如资料产生和资料解构功能),还有9.3新增的操作者.当使用JSON 资料类型,资料的被存储成一完全一样的副本,功能还在此之上运作,还另外需要后台运作的重新分析. 这心得JSONB 资

  • PostgreSQL中json数据类型详解

    目录 前言 一.PG数据库中JSON的类型 1.json和jsonb的区别 2.项目开发中的选择 3.json数据类型 二.PG中json的简单操作 1.基础json数据操作 2.json和jsonb输出对比 3.jsonb包含测试 总结 前言 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,

  • PostgreSQL更新表时时间戳不会自动更新的解决方法

    PostgreSQL更新表时时间戳不会自动更新的解决方法,具体如下 操作系统:CentOS7.3.1611_x64 PostgreSQL版本:9.6 问题描述 PostgreSQL执行Insert语句时,自动填入时间的功能可以在创建表时实现,但更新表时时间戳不会自动自动更新. 在mysql中可以在创建表时定义自动更新字段,比如 : create table ab ( id int, changetimestamp timestamp NOT NULL default CURRENT_TIMEST

随机推荐