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

标签 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

最佳答案

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

关于postgresql - 如何在 PostgreSQL 中跳过 psql\COPY 中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51293652/

相关文章:

python - 在 Postgresql 中存储版本的最佳方式

python - Python + OpenCV-将图像复制到某个目录

postgresql - 尝试在 psql 中使用 "\i [filename]",得到 "invalid argument"

postgresql - "peer authentication failed"将数据加载到 PostgreSQL 时出错

Python OS PostgreSQL 和引用

postgresql - 如何忽略 postgresql 中 select distinct 的列?

postgresql - 导轨 : query that must match all terms

postgresql - DBLINK vs Postgres_FDW,哪一个可以提供更好的性能?

Linux:如何递归复制省略某些文件夹?

python - 将字符串复制到 Python 中的列表