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

PostgreSQL更新jsonb列布尔值遇类型错误的解决方案咨询

PostgreSQL更新jsonb字段布尔值的正确方案

可用实现方案

方案1:使用jsonb_set函数

你之前报错的核心原因是没有使用正确的布尔值转jsonb的方法,PostgreSQL不支持直接将布尔值强转为jsonb,需要调用to_jsonb()函数完成类型转换,正确写法如下:

UPDATE table_name
   SET jsonb_column_name = jsonb_set(jsonb_column_name, '{yellow}', to_jsonb(true), true) 

方案2:使用||运算符拼接(更简洁)

jsonb类型支持||运算符用于合并两个jsonb结构,相同key的情况下后传入的值会覆盖原有值,写法更简单:

UPDATE table_name
   SET jsonb_column_name = jsonb_column_name || '{"yellow": true}'::jsonb

字符串替换转jsonb方案的安全性说明

绝对不推荐使用该方案,存在以下严重风险:

  • 误替换问题:如果json数据的其他位置(比如其他字段的value、嵌套字段的key)出现和目标匹配的字符串,会被意外修改,导致数据错乱
  • 结构匹配问题:如果存在同名的嵌套yellow字段,字符串替换无法精准匹配顶层的目标字段,会错误修改所有匹配内容
  • 转义异常问题:如果json内容包含特殊转义字符,字符串替换可能破坏整体json结构,导致转jsonb时报错,或者生成非法的json数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:27:01