码迷,mamicode.com
首页 > 数据库 > 详细

postgresql9.4新特性jsonb学习

时间:2015-12-20 23:45:29      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

先科普下概念:PgSQL9.4 新增 JSONB 数据类型, JSONB 同时属于 JSON (JavaScript Object Notation) 数据类型,jsonb 和 json 的输入数据几乎完全通用,最大的差别体现在效率上,json 存储的数据几乎和输入数据一样,存储的是未解析的数据,调用函数时使用效率较低; 而 jsonb 存储的是分解的 binary 格式数据,使用时不需要再解析了,因此使用上效率较高; 另一方面 json 在写入时较快,而 jsonb 写入时由于需要转换导致写入较慢

目前网上的资料大量的介绍jsonb 的查询操作,这里我不重复了

官方文档介绍:http://www.postgresql.org/docs/9.4/static/datatype-json.html#JSON-CONTAINMENT

francs博客:http://francs3.blog.163.com/blog/static/40576727201452293027868/

 

我一直在想问题,select 都可以了,那么update 的时候是像传统的方式来操作吗?  如果是,那么对于json这样的数据更新就比较麻烦,

能不能这样:

 update api set  jdoc->‘guid‘=‘ddddsxxx‘, jdoc->‘name‘=‘good‘ WHERE jdoc @> ‘{"company": "Magnafone"}‘

经过我测试发觉pgsql会报语法错误,那么这样肯定是不行了

看来只能这样了:

技术分享

 

这样操作有一个弊端,那就是在更新的时候我就必须得知道content字段的全部内容,然后我才可以根据条件来更新,

那么实战操作中 要知道content字段的全部内容 ,我又是不是要select出来,然后再 update,这样 就两个操作了。

 

除了这样目前 对于 jsonb字段的更新确实没有更智能的方式,

如果大家有更好的方式,欢迎留言

postgresql9.4新特性jsonb学习

标签:

原文地址:http://www.cnblogs.com/fangyuan303687320/p/5062113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!