Flu*_*hed 5 postgresql json postgresql-9.5
我的users表包含一metadata列类型json.现在,我想在保留现有值的同时向用户添加新元数据.所以我使用||运算符合并2个JSON对象:
UPDATE users
SET metadata = metadata::jsonb || '{"test": true}'::jsonb
WHERE id=...
RETURNING *;
Run Code Online (Sandbox Code Playgroud)
当已经存在一些现有元数据时,一切正常.但是,当前一个值为时,NULL更新不起作用.在metadata以后的更新仍然是NULL.
如何改进我的查询,以便在前一个值为NULL或者合并前一个值和新值时设置新的JSON对象,否则?
添加合并:
UPDATE users
SET metadata = coalesce(metadata::jsonb,'{}'::jsonb) || '{"test": true}'::jsonb
WHERE id=...
RETURNING *;
Run Code Online (Sandbox Code Playgroud)
它与普通字符串的工作方式类似,NULL || something总是为NULL
| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |