2

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

Total Count: 2956
Avg Time: 13ms

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

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

4

1 回答 1

3

对于 Linux 使用tailhead裁剪文件并将其通过管道传输到您的脚本:

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

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

copy my_table from STDIN;
于 2013-04-16T13:35:17.610 回答