【问题标题】:PostgreSQL and import of huge CSV FilesPostgreSQL 和大型 CSV 文件的导入
【发布时间】:2020-06-03 14:10:10
【问题描述】:

我尝试导入多个 .csv 文件(8GB、56GB 和 11GB),但都失败并出现未知错误。

CREATE TABLE name(
    COMMIT_ID int,
    PARENT_ID int
);

COPY  FROM 'C:/Users/Public/name.csv' DELIMITER ',' NULL AS '\N' ESCAPE AS '\' CSV;

我尝试过 pgAdmin4 和 cmd。

我使用 Windows 10 和 PostgreSQL12

来自同一数据库的所有其他文件均小于 1GB。我可以毫无问题地导入这些文件

【问题讨论】:

  • 服务器可以读取那个目录下的那个文件吗?您是否尝试过在 psql 中使用 \COPY ?为什么错误未知?日志是怎么说的?
  • 我试过这样COPY project_commits(project_id,commit_id) FROM program 'cmd /c "type c:/Users/Public/project_commits.csv"' with (DELIMITER ',' NULL AS '\N' ESCAPE AS '\' format CSV);,我也试过用这个命令COPY project_commits(project_id,commit_id) FROM program 'cmd /c "type c:/Users/Public/project_commits.csv"' DELIMITER ',' NULL AS '\N' ESCAPE AS '\' with (format CSV);都不起作用
  • 为了记录,我也试过这样COPY project_commits(project_id,commit_id) FROM program 'cmd /c "type c:/Users/Public/project_commits.csv"' with (format CSV);
  • 您正在为 with 选项混合新旧语法。试试COPY project_commits(project_id,commit_id) FROM program 'cmd /c "type c:/Users/Public/project_commits.csv"' DELIMITER ',' NULL AS '\N' CSV ESCAPE AS '\'; 它使用的是你问题中的旧语法。注意with 是可选的,它的选项在括号中是not。此外,选项之间没有逗号(虽然新语法需要它)

标签: postgresql csv import copy


【解决方案1】:

这可能无法直接回答问题,但我所做的是降级我的 postgresql。

我现在用的是9.6.18,只是用普通的命令

COPY  FROM 'C:/Users/Public/name.csv' DELIMITER ',' NULL AS '\N' ESCAPE AS '\' CSV;

我知道这不是完美的解决方案。这似乎是 postgresql 的问题,而不是用户问题

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多