0

我是使用 SQL 的新手,所以请多多包涵。

我需要将数百个 csv 文件导入 PostgreSQL。我的网络搜索只显示了如何将许多 csv 文件导入到一个表中。但是,大多数 csv 文件具有不同的列类型(都有一行标题)。是否有可能以某种方式运行一个循环,并将每个 csv 导入到与 csv 同名的表中?手动创建每个表并指定列不是一种选择。我知道这COPY不会起作用,因为表格需要已经指定。

也许这在 PostgreSQL 中不可行?我想在 pgAdmin III 或 PSQL 控制台中完成此操作,但我对其他想法持开放态度(使用 R 之类的东西将 csv 更改为更容易输入 PostgreSQL 的格式?)。

我在 Windows 7 计算机上使用 PostgreSQL。有人要求我使用 PostgreSQL,因此是问题的重点。

期望的结果是一个充满表格的数据库,然后我将加入一个包含特定站点数据的电子表格。谢谢!

4

2 回答 2

1

在终端中使用 nano 制作文件以循环将我目录下的 csv 文件移动到 postgres DB

>nano run_pgfutter.sh

run_pgfutter.sh 的内容:

#! /bin/bash
for i in /mypath/*.csv
do
   ./pgfutter csv ${i}
done

然后使文件可执行:

chmod u+x run_pgfutter.sh 
于 2017-04-21T21:21:28.327 回答
1

使用pgfutter

一般语法如下所示:

   pgfutter csv       

为了从 Windows 命令提示符对目录中的所有 csv 文件运行此命令,请导航到所需目录并输入:

   for %f in (*.csv) do pgfutter csv %f

请注意,下载程序的路径必须添加到环境变量的接受路径列表中。

编辑:这是 Linux 用户的命令行代码

运行它

   pgfutter *.csv       

或者如果那不行

   find -iname '*.csv' -exec pgfutter csv {} \;
于 2015-09-25T00:24:43.520 回答