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

向PostgreSQL的jsonb列插入一维数组时出现语法错误如何解决

错误原因

你写的{"14160000000","17780000000"}是PostgreSQL原生数组的字面量语法,仅适用于text[]、int[]这类PostgreSQL内置数组类型,不符合JSON数组的语法规范,因此PostgreSQL无法将其解析为合法的jsonb值,抛出语法错误。

正确插入方案

有三种常用的插入方式,你可以根据使用场景选择:

  • 直接传入合法JSON数组字符串
    JSON数组要求用方括号[]包裹元素,修改后的INSERT语句如下:

    INSERT INTO public.conversations(conversation_id, participants) 
    VALUES ('123456', '["14160000000","17780000000"]');
    
  • 将PostgreSQL原生数组转换为jsonb
    如果你已使用PostgreSQL原生数组存储参与者数据,可以通过to_jsonb()函数直接转换,无需手动拼接JSON字符串:

    INSERT INTO public.conversations(conversation_id, participants) 
    VALUES ('123456', to_jsonb(ARRAY['14160000000','17780000000']::text[]));
    
  • 动态构建jsonb数组
    如果需要动态生成数组元素,可使用jsonb_build_array函数,自动处理类型转换和引号转义,避免语法错误:

    INSERT INTO public.conversations(conversation_id, participants) 
    VALUES ('123456', jsonb_build_array('14160000000','17780000000'));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:06:03