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

如何将JavaScript数组轻松转换为Postgres BigInt数组

实现JSON数组转PostgreSQL BIGINT[]存储

直接SQL转换存储

假设你有一张存储用户数据的表,结构定义如下:

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    convert_ids BIGINT[]
);

插入数据时,直接对传入的JSON字符串的convert字段做类型转换即可:

INSERT INTO users (name, convert_ids)
VALUES (
    'John Doe',
    '{"name" : "John Doe","convert" : [32197,4234523,4235423]}'::json->>'convert'::bigint[]
);

如果表中已有JSON类型的字段(比如data JSON),需要更新convert_ids列时,执行以下语句:

UPDATE users
SET convert_ids = (data->>'convert')::bigint[]
WHERE id = 1;

在PL/pgSQL函数中处理

如果是通过自定义函数接收JSON参数并存储,写法如下:

CREATE OR REPLACE FUNCTION insert_user(p_user JSON)
RETURNS VOID AS $$
BEGIN
    INSERT INTO users (name, convert_ids)
    VALUES (
        p_user->>'name',
        (p_user->>'convert')::bigint[]
    );
END;
$$ LANGUAGE plpgsql;

-- 调用函数
SELECT insert_user('{"name" : "John Doe","convert" : [32197,4234523,4235423]}');

关键说明

PostgreSQL会自动处理JSON数组的格式转换——把JSON的方括号数组([32197,4234523,4235423])转换成SQL数组的大括号格式({32197,4234523,4235423}),无需手动替换字符。如果使用JSONB类型,只需把语句中的::json换成::jsonb,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:02:12