我应该如何打开PostgreSQL转储文件并向其添加实际数据?

时间:2012-01-06 23:18:36

标签: postgresql file-io csv

我有一个非常基本的数据库。我需要将一个大小合适的用户列表放入db中。我有转储文件,需要将其转换为.pg文件,然后以某种方式将此数据加载到其中。

我需要添加的数据是CSV格式。

2 个答案:

答案 0 :(得分:3)

我假设您已经有一个.pg文件,我假设它是一个“自定义”格式的数据库转储。

PostgreSQL可以load data in CSV format using the COPY statement。因此,最简单的方法就是以这种方式将数据添加到数据库中。

如果您真的必须编辑转储,并且该文件是“自定义”格式,则很遗憾无法手动编辑该文件。但是,您可以使用pg_restore从自定义格式创建纯SQL备份并进行编辑。没有pg_restore参数的-d将生成用于插入的SQL脚本。

答案 1 :(得分:0)

根据Daniel的建议,最简单的解决方案是将数据保存为CSV格式,然后按原样导入Postgres。

如果您尝试将此CSV数据合并到第三方Postgres转储文件中,则需要先将数据转换为SQL插入语句。

一种可能的unix解决方案:

awk -F, '{printf "INSERT INTO TABLE my_tab (\"%s\",\"%s\",\"%s\");\n",$1,$2,$3}' data.csv