postgresql – 如何在Postgres 9.4中对JSONB类型的列执行更新操
查看Postgres 9.4数据类型JSONB的文档,我不知道如何对JSONB列进行更新。
JSONB类型和函数的文档: http://www.postgresql.org/docs/9.4/static/functions-json.html 作为例子,我有这个基本的表结构: CREATE TABLE test(id serial,data jsonb); 插入很容易,如: INSERT INTO test(data) values ('{"name": "my-name","tags": ["tag1","tag2"]}'); 现在,我如何更新“数据”列?这是无效的语法: UPDATE test SET data->'name' = 'my-other-name' WHERE id = 1; 这是记录在一个明显的地方,我错过了吗?谢谢。
理想情况下,不要对关系数据库中要管理的数据使用JSON文档。请使用规范化的关系设计。
JSON主要用于存储不需要在RDBMS中操作的整个文档。 更新Postgres中的一行总是写一个新版本的整行。这是Postgres’ MVCC model的基本原理。从性能的角度来看,无论是更改JSON对象内的单个数据还是所有内容,都几乎不重要:必须写入新版本的行。 因此advice in the manual:
它的要点:要修改JSON对象中的任何内容,必须将修改的对象分配给列。 Postgres提供了有限的手段来构建和操纵json数据以及其存储功能。自9.2版本以来,每个新版本的工具的软件都大大增加。即将到来的version 9.4 is adding quite a bit。 说明如何使用Postgres 9.3的工具: > How do I modify fields inside the new PostgreSQL JSON datatype? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |