我是使用SQL的新手,所以请耐心等待。
我需要将几百个csv文件导入PostgreSQL。我的网络搜索仅指示了如何将许多csv文件导入到一个表中。但是,大多数csv文件具有不同的列类型(都有一个行标题)。有可能以某种方式运行循环,并将每个csv导入到与csv同名的表中吗?手动创建每个表并指定列不是一个选项。我知道COPY
将不起作用,因为表格需要已经指定。
也许这在PostgreSQL中不可行?我想在pgAdmin III或PSQL控制台中实现这一点,但我对其他想法持开放态度(使用类似R的东西将csv更改为更容易输入PostgreSQL的格式?)。
我在Windows 7计算机上使用PostgreSQL。有人要求我使用PostgreSQL,这是问题的焦点。
所需的结果是一个包含表格的数据库,然后我将与包含特定网站数据的电子表格一起加入。谢谢!
答案 0 :(得分:1)
使用pgfutter。
一般语法如下所示:
pgfutter csv
要在Windows命令提示符下的目录中的所有csv文件上运行此命令,请导航到所需目录并输入:
for %f in (*.csv) do pgfutter csv %f
请注意,必须将下载程序的路径添加到环境变量的已接受路径列表中。
编辑: 以下是Linux用户的命令行代码
将其作为
运行 pgfutter *.csv
或者如果不能做到
find -iname '*.csv' -exec pgfutter csv {} \;
答案 1 :(得分: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