postgresql - "No such file or directory"使用psql的\copy命令时出现错误消息

标签 postgresql

对于此 psql 的\copy 命令,我一直收到“没有此类文件或目录”的错误消息:

\从 '/home/kihong/hh.csv' 复制带有 csv 标题的家庭;

你有什么建议吗?

最佳答案

如果我是你,我会将文件移动到不同的文件夹(这对我有用)。我尝试从桌面上传 CSV 文件,但收到了您收到的错误消息。正如 Craig Ringer 建议的那样,使用 copy 而不是\copy。

以下是有关如何将数据从电子表格(Excel 或 OpenOffice Calc)加载到 postgreSQL 的分步说明:

将电子表格页面另存为 CSV 文件。首选方法是在 OpenOffice Calc 上打开电子表格并进行保存。在“导出到文本文件”窗口中,选择“字符集”为“Unicode (UTF8)”,“字段分隔符”为“,”,文本分隔符为““”。将显示消息,说明仅保存事件工作表。注意:此文件必须保存在文件夹中,但不能保存在桌面上,并且必须以 UTF8 格式保存(默认的 postgreSQL 是针对 UTF8 编码的升级)。如果保存在桌面上,postgreSQL 将给出“访问被拒绝”消息并且不会上传。

在 PostgreSQL 中,创建一个与电子表格具有相同列数的空表。

注意:在每列上,列名必须相同,数据类型必须相同。另外,请记住数据的长度,其中字符随足够的字段而变化。

然后在 postgreSQL 的 SQL 窗口中输入代码:

从 E'C:\\tmp\\blabla.csv' 分隔符 ',' CSV HEADER 复制“ABC”.“def”;

注意:此处 C:\\tmp 是保存 CSV 文件“blabla”的文件夹。 “ABC”.“def”是在 postgreSQL 上创建的表,其中“ABC”是模式,“def”是表。然后按顶部的绿色按钮“执行查询”。当 CSV 表格每列开头都有标题时,需要“CSV HEADER”。

如果一切正常,则不会显示错误消息,并且 CSV 文件中的表数据将加载到 postgreSQL 表中。但如果出现错误消息,请执行以下操作:

如果错误消息表明数据对于特定列来说太长,则增加列大小。这种情况主要发生在字符和字符变化列上。然后再次运行“执行查询”命令。

如果错误消息表明数据类型与特定列不匹配,则更改 postgreSQL 表列上的数据类型以匹配 CSV 表中的数据类型。

关于postgresql - "No such file or directory"使用psql的\copy命令时出现错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12697314/

相关文章:

sql - plpgsql 如何在函数或过程中执行查询

java - Hibernate 在 PostgreSQL 中使用驼峰格式的主键

sql - PostgreSQL:按字母数字字符串和小数字段排序

postgresql - 将 UUID 插入由客户端应用程序生成的 Postgres 是否合法?

postgresql - 无法获取 Go http 返回错误; 'No data recieved'

sql - 错误 : there is no unique constraint matching given keys for referenced table "bar"

php - 如何在 CakePHP 中编写带子查询的 Select

javascript - 我可以在客户端使用 PostgreSQL (pg) (express/node.js)

postgresql - 在 PostgreSQL 中的两个日期之间的每个月创建一行

postgresql - 在事务中创建数据库