【发布时间】: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