使用PSQL的\copy导入CSV时提示“文件或目录不存在”的问题
解决pgAdmin PSQL Tool执行\copy命令提示“no such file or directory”的问题
第一步:修正路径错误
你当前执行的命令里路径存在重复错误:
\copy company_dim FROM 'C:\Users\Username\Desktop\Data Studio\company_dim.csv/company_dim.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8')
其中company_dim.csv/company_dim.csv属于无效路径,需改成实际文件路径。如果文件直接在Data Studio文件夹下,正确路径应为:
\copy company_dim FROM 'C:\Users\Username\Desktop\Data Studio\company_dim.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8')
或者统一用斜杠替换反斜杠(避免混合使用导致识别错误):
\copy company_dim FROM 'C:/Users/Username/Desktop/Data Studio/company_dim.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8')
第二步:核对文件实际路径
- 找到目标CSV文件,右键选择「属性」,查看「位置」栏的完整路径,确保命令中的路径和该路径完全一致
- 注意文件名的拼写、大小写(Windows系统不区分,但尽量和实际文件名保持一致),避免因空格、特殊字符导致路径识别失败
第三步:pgAdmin PSQL Tool专属注意事项
\copy是客户端命令,文件路径指向的是运行pgAdmin的本地电脑路径,而非PostgreSQL服务器的路径(如果是远程服务器则需注意)- 不要轻易替换为
COPY命令——COPY是服务器端命令,要求文件放在PostgreSQL服务器的数据目录,且需要更高权限,反而更繁琐 - 确认pgAdmin有文件读取权限:右键CSV文件→「属性」→「安全」,检查当前登录用户是否拥有「读取」权限,无权限则添加读取权限
第四步:极简路径测试排查
如果上述操作仍无效,可将CSV文件直接放到C盘根目录(如C:\company_dim.csv),执行以下命令测试:
\copy company_dim FROM 'C:/company_dim.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8')
若此命令成功,说明原路径存在特殊字符或权限限制,可逐步将文件移回原目录,逐步排查问题点。
内容的提问来源于stack exchange,提问作者Francesco Zini
相关产品推荐
相关产品推荐

