首页 > Web开发 > 详细

修改jsonb的属性

时间:2016-05-27 20:02:45      阅读:279      评论:0      收藏:0      [点我收藏+]

CREATE FUNCTION jsonb_merge(JSONB, JSONB)

RETURNS JSONB AS $$

WITH json_union AS (

    SELECT * FROM JSONB_EACH($1)

    UNION ALL

    SELECT * FROM JSONB_EACH($2)

) SELECT JSON_OBJECT_AGG(key, value)::JSONB FROM json_union;

$$ LANGUAGE SQL;

 

UPDATE xxx SET data = jsonb_merge(data,‘{"b":3}‘) WHERE id = 1;

SELECT * FROM xxx;

 id |       data      

----+------------------

  1 | {"a": 1, "b": 3}

 

-- append

UPDATE xxx SET data = jsonb_merge(data,‘{"c":4}‘) WHERE id = 1;

SELECT * FROM xxx;

 id |           data      

----+-------------------------

  1 | {"a": 1, "b": 3, "c": 4}

 

 

 

 

CREATE FUNCTION jsonb_merge(JSONB, JSONB)

RETURNS JSONB AS $$

WITH json_union AS (

    SELECT * FROM JSONB_EACH($1)

    UNION ALL

    SELECT * FROM JSONB_EACH($2)

) SELECT JSON_OBJECT_AGG(key, value)::JSONB

     FROM json_union

     WHERE key NOT IN (SELECT key FROM json_union WHERE value =‘null‘);

$$ LANGUAGE SQL;

修改jsonb的属性

原文:http://www.cnblogs.com/flintlovesam/p/5535764.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!