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

PostgreSQL更新jsonb类型字段触发语法错误如何解决?

报错原因

PostgreSQL无法直接解析SQL中裸写的{}格式JSON内容,你写的{'a': '', 'b': ''}没有用单引号包裹,也没有声明JSONB类型,所以触发语法报错。

解决方案

提供两种常用的正确写法:

  • 写法1:JSON字符串强转类型
    把JSON内容整体用单引号包裹后,通过::jsonb声明为jsonb类型即可,适合静态JSON写入场景:
    UPDATE test.product SET response_json = '{"a": "", "b": ""}'::jsonb WHERE "product_id" = 1;
    
  • 写法2:使用jsonb_build_object函数构造
    不需要手动拼接JSON字符串,直接传入键值对即可,适合动态赋值、JSON内容包含特殊字符需要避免转义问题的场景:
    UPDATE test.product SET response_json = jsonb_build_object('a', '', 'b', '') WHERE "product_id" = 1;
    
注意事项
  • 单引号是SQL中字符串的标识,JSON内容作为字符串输入必须整体用单引号包裹,JSON内部的键值对要用双引号
  • 如果JSON内容中包含单引号,需要把单引号转义为两个连续的单引号,或者直接使用jsonb_build_object规避转义操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:30:01