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

PostgreSQL使用jsonb_set更新嵌套jsonb字段报错找不到匹配函数

错误原因

jsonb_set 函数的第三个入参要求为 jsonb 类型,你直接传入了整数类型的 21,PostgreSQL 无法匹配到对应参数类型的函数实现,因此抛出类型不匹配错误。
你参考的官方示例中第三个参数传入的是符合JSON格式的字符串,PostgreSQL会自动完成隐式类型转换,所以可以正常执行。

修复方案

可以任选以下一种写法调整更新语句:

  • 使用 to_jsonb 函数将整数转换为 jsonb 类型
update api set jdoc = jsonb_set(jdoc, '{members,coach,id}', to_jsonb(21)) where id = 22;
  • 将数值写为JSON格式字符串后显式强转为 jsonb 类型
update api set jdoc = jsonb_set(jdoc, '{members,coach,id}', '21'::jsonb) where id = 22;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:09:00