繁体   English   中英

如何 append 自定义 object 到 postgres 中的 JSONB 列类型

[英]How to append a custom object to JSONB column type in postgres

我需要更新一个包含数据{"X":true}的 jsonb 列。 我需要 append 一个复杂的 object 类型{"obj":{"a":1,"b":2}}所以该列的行的最终值{"x":true,"obj":{"a":1,"b":2}} 更新此行的查询将是什么。

postgres 版本 12

更新 - 以下查询update tableName set columnName = (select '{"obj":{"a":1,"b":2}}'::jsonb || columnName::jsonb) where...返回成功时存在一个值,但是当列是 null 时,它在运行更新查询后仍然是 null。 即使列是 null,我也需要能够添加{"obj":{"a":1,"b":2}}

您可以使用连接运算符

'{"X":true}'::jsonb || '{"obj":{"a":1,"b":2}}'::jsonb

如果要更新现有列,请使用coalesce()处理 NULL 值:

update the_table
  set the_column = coalesce(the_column, '{}')||'{"obj":{"a":1,"b":2}}'

在线示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM