跳过行的Postgresql csv导入

时间:2013-04-16 12:54:01

标签: postgresql csv-import

我有一个Postgresql脚本,可以自动将csv文件导入我的数据库。该脚本可以检测重复记录并删除它们,做一个正确的upsert但仍然无法解决所有问题。基本上csv文件是从其他系统导出的,这些系统附加在文件的开头和结尾,例如:

Total Count: 2956
Avg Time: 13ms

Column1, Column2, Column3
...      ...      ... 

我想要做的是跳过文件底部的初始行或任何行。有什么方法可以通过COPY或通过其他路线在Postgresql中做到这一点吗?我可以通过Postgresql调用实例操作系统命令吗?

1 个答案:

答案 0 :(得分:2)

对于Linux,请使用tailhead裁剪文件并将其传递给您的脚本:

tail -n +3 file.csv | head -1 | psql -f my_script.sql my_database

然后您的脚本将从STDIN复制:

copy my_table from STDIN;