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

如何使用COPY命令将JSON文件数据导入PostgreSQL表?

解决PostgreSQL导入嵌套JSON的COPY命令使用问题

直接用COPY table_name FROM file_path;失败的原因是:PostgreSQL默认的COPY命令处理的是平面格式(如CSV、TEXT),而你的JSON是嵌套结构,字段映射不匹配。以下是两种场景的正确操作方法:

场景1:目标表是平面结构(拆分JSON字段存储)

假设你要把JSON里的type和weight分别存入表的对应字段,先创建目标表:

CREATE TABLE planes (
    type TEXT,
    weight TEXT
);
  1. 创建临时表接收完整JSON内容:
CREATE TEMP TABLE temp_json (data jsonb);
  1. 用COPY导入JSON文件到临时表:
COPY temp_json FROM '/path/to/your/plane.json';
  1. 解析嵌套JSON并插入目标表:
INSERT INTO planes (type, weight)
SELECT 
    data->'plane'->>'type',
    data->'plane'->>'weight'
FROM temp_json;

场景2:目标表用JSONB字段存储完整嵌套结构

如果你的表设计是直接存储整个JSON对象,先创建目标表:

CREATE TABLE plane_data (
    plane_info jsonb
);

直接用带FORMAT参数的COPY命令导入(PostgreSQL 12+支持):

COPY plane_data (plane_info) 
FROM '/path/to/your/plane.json' 
FORMAT JSON AS 'object';

注意:如果你的JSON文件是多行多个对象(JSON Lines格式),可以去掉AS 'object'参数,直接用FORMAT JSON。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:54:52