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

如何将多个CSV文件导入PostgreSQL并新增列存储对应源文件名

多CSV导入PostgreSQL并新增源文件名标识的实现方案

步骤1:创建目标数据表

提前创建正式存储数据的表,新增source_file列用于存储每条记录对应的源文件名,示例建表语句如下(可根据你的CSV实际字段调整列结构):

CREATE TABLE target_table (
    -- 下方为CSV文件自带的字段,可自行修改匹配你的CSV结构
    id INT,
    content VARCHAR(255),
    create_time TIMESTAMP,
    -- 新增的源文件名列
    source_file VARCHAR(255) NOT NULL
);

步骤2:导入数据并填充源文件名

提供两种常用实现方案,可根据你的使用场景选择:

方案1:PostgreSQL原生COPY命令(适合少量文件手动导入)

单个文件按以下流程操作,多文件重复执行即可:

  • 创建和CSV字段完全匹配的临时表,不需要加source_file列
    CREATE TEMP TABLE temp_csv (
        id INT,
        content VARCHAR(255),
        create_time TIMESTAMP
    );
    
  • 导入单个CSV到临时表,CSV有表头的话需要加HEADER参数
    COPY temp_csv FROM '/你的CSV文件绝对路径/xxx.csv' DELIMITER ',' CSV HEADER;
    
  • 把临时表数据插入正式表,同时指定当前导入的文件名
    INSERT INTO target_table (id, content, create_time, source_file)
    SELECT *, 'xxx.csv' FROM temp_csv;
    
  • 执行TRUNCATE TABLE temp_csv;清空临时表,即可继续导入下一个文件。

方案2:Python批量自动导入(适合大量文件批量处理)

无需手动逐个执行命令,一次脚本运行即可完成所有文件导入:

  • 先安装依赖包
    pip install pandas psycopg2-binary sqlalchemy
    
  • 运行批量导入脚本
    import os
    import pandas as pd
    from sqlalchemy import create_engine
    
    # 替换为你自己的PostgreSQL连接信息
    pg_engine = create_engine("postgresql://用户名:密码@数据库地址:端口/数据库名")
    # 替换为你存放CSV文件的文件夹路径
    csv_folder = "/your/csv/folder/path"
    
    for file_name in os.listdir(csv_folder):
        if file_name.lower().endswith(".csv"):
            file_full_path = os.path.join(csv_folder, file_name)
            # 读取CSV内容
            df = pd.read_csv(file_full_path)
            # 新增源文件名列,赋值为当前文件名
            df["source_file"] = file_name
            # 追加写入PostgreSQL正式表
            df.to_sql(
                name="target_table",
                con=pg_engine,
                if_exists="append",
                index=False
            )
    print("所有CSV文件导入完成")
    

注意事项

  • 使用COPY命令导入时,需要确保PostgreSQL运行账号对CSV文件有读取权限,否则会触发权限报错
  • 如果不同CSV的字段结构有差异,导入前需要先统一字段,避免插入失败
  • 单文件超过1G的大文件导入,建议拆分分批提交,避免数据库内存占用过高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:24:03