You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postgres中清空JSON列内vendor对象的所有属性

解决Postgres JSONB列清空动态属性对象的问题

正确的更新语句

直接用jsonb_set函数将vendor字段覆盖为空对象,不管它原来有多少动态属性:

UPDATE table_name
SET data = jsonb_set(data::jsonb, '{vendor}', '{}'::jsonb);

为什么之前的方法无效

  • 第一种写法data::jsonb #- '{vendor.*}':#-操作符用于删除指定的JSON路径,但Postgres不支持用*作为通配符匹配子属性,这个语法本身不生效。
  • 第二种写法data::jsonb - '{vendor.*}'::text[]:-操作符用于删除JSONB对象的顶层键,vendor.*并不是实际存在的顶层键,所以不会产生任何修改。

验证结果

执行语句后,data列的结构会符合预期:

{
  "headerText": "header text",
  "vendor": {},
  "footerText": "some text"
}

内容的提问来源于stack exchange,提问作者Vishnu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:27:28