如何在PostgreSQL的psql \ COPY中跳过空行

时间:2018-07-11 20:21:42

标签: postgresql copy psql

在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

1 个答案:

答案 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