我有一个Postgresql脚本,可以自动将csv文件导入我的数据库。该脚本可以检测重复记录并删除它们,做一个正确的upsert但仍然无法解决所有问题。基本上csv文件是从其他系统导出的,这些系统附加在文件的开头和结尾,例如:
Total Count: 2956
Avg Time: 13ms
Column1, Column2, Column3
... ... ...
我想要做的是跳过文件底部的初始行或任何行。有什么方法可以通过COPY或通过其他路线在Postgresql中做到这一点吗?我可以通过Postgresql调用实例操作系统命令吗?
答案 0 :(得分:2)
对于Linux,请使用tail
和head
裁剪文件并将其传递给您的脚本:
tail -n +3 file.csv | head -1 | psql -f my_script.sql my_database
然后您的脚本将从STDIN复制:
copy my_table from STDIN;