如何在从Postgresql导入CSV时跳过前几行?
问题描述:
我试图导入一个CSV文件到我的Postgresql,第一行8行被跳过并从第九行开始。我下面的作品码,从第二行读取和处理第一行标题:如何在从Postgresql导入CSV时跳过前几行?
create table report(
id integer,
name character(3),
orders integer,
shipments float
);
COPY report
FROM 'C:\Users\sample.csv' DELIMITER ',' CSV HEADER;
现在如何改进这个代码从9号线阅读。 谢谢!
答
在PostgreSQL 9.3或更新的版本,COPY
可以指程序对数据进行预处理,例如Unix的tail
。
要在第9行开始导入:
COPY report FROM PROGRAM 'tail -n +9 /path/to/file.csv' delimiter ',' csv;
显然,你正在使用Windows,所以tail
可能不会立即可用。我个人会从MSYS
安装它,否则有
Looking for a windows equivalent of the unix tail command
或Windows equivalent of the 'tail' command中提到的替代方案。
不需要msys或类似的东西。命令行程序可以作为本地windows二进制文件下载:http://unxutils.sourceforge.net/或http://gnuwin32.sourceforge.net/ –