在PostgreSQL psql中,如何使\ copy命令忽略输入文件中的空行?
这是复制它的代码,
create table t1(
n1 int
);
echo "1
2
" > m.csv
psql> \copy t1(n1) FROM 'm.csv' (delimiter E'\t', NULL 'NULL', FORMAT CSV, HEADER false);
ERROR: invalid input syntax for integer: ""
CONTEXT: COPY t1, line 3, column n1: ""
m.csv文件中有一个空行
cat m.csv
1
2
<< empty line
答案 0 :(得分:1)
PostgreSQL COPY
非常严格,因此不可能在容忍模式下启动COPY
。如果可能的话,您可以使用COPY FROM PROGRAM
[pavel@nemesis ~]$ cat ~/data.csv 10,20,30 40,50,60 70,80,90 psql -c "\copy f from program ' sed ''/^\s*$/d'' ~/data.csv ' csv" postgres