如何将csv文件从url复制到Postgresql

时间:2017-01-17 12:05:46

标签: postgresql csv url

有没有办法使用copy命令批量数据导入和从网址读取数据。例如,copy命令的语法如下:

COPY sample_table
FROM 'C:\tmp\sample_data.csv' DELIMITER ',' CSV HEADER;

我想要的不是提供本地路径而是提供网址。有什么办法吗?

2 个答案:

答案 0 :(得分:9)

如果你有一个合适的命令行工具,它非常简单:

COPY sample_table FROM PROGRAM 'curl "http://www.example.com/file.csv"'

由于您似乎在Windows上,我认为您需要自己安装curlwget。在Windows here上使用wget的示例可能很有用。

答案 1 :(得分:0)

我的解决方法是

cat $file |
    tail -$numberLine |
    sed 's/ / ,/g' |
    psql -q -d $dataBaseName -c "COPY tableName FROM STDIN DELIMITER ','"

您可以在awksed之间插入psql,以添加缺少的列。 有趣的是,如果您已经知道要在缺失列中添加什么内容。

awk '{print $0" , "'info_about_missing_column'"\n"}'

我已经做到了,它比INSERT的工作速度更快。