我有一个非常基本的数据库。我需要将一个大小合适的用户列表放入db中。我有转储文件,需要将其转换为.pg文件,然后以某种方式将此数据加载到其中。
我需要添加的数据是CSV格式。
答案 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