将多个 csv 文件导入和维护到 PostgreSQL

Importing and maintaining multiple csv files into PostgreSQL

我刚开始使用SQL,所以请多多包涵。

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

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

我在 Windows 7 计算机上使用 PostgreSQL。要求我使用PostgreSQL,这就是问题的重点。

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

使用pgfutter

一般语法如下所示:

   pgfutter csv       

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

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

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

编辑: 这是 Linux 用户

的命令行代码

运行 等于

   pgfutter *.csv       

否则不行

   find -iname '*.csv' -exec pgfutter csv {} \;

在终端使用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