postgresql – 如果在CSV导入时重复,则忽略行

我想知道是否可能?如果由于某种原因导致无法导入行

恩.重复的主键,错误的输入类型等可以忽略并移动到下一行?

我得到了这个

ERROR:  duplicate key value violates unique constraint "team_pkey"
DETAIL:  Key (team)=(DEN) already exists.
CONTEXT:  COPY team, line 23: "DEN,Denver,Rockets,A"

文件中存在很多错误,它是一个非常大的错误,所以可以忽略无法插入的行吗?

最佳答案 处理重复密钥问题的解决方案在
To ignore duplicate keys during ‘copy from’ in postgresql中描述 – 简而言之,使用无约束临时表并在唯一字段上选择distinct到目标表中.

另一种方法是使用pgLoader.不幸的是,文档似乎已经从网站上消失了,但是有一些关于the author’s site的教程文章.它具有丰富的功能,可以帮助您阅读有问题的数据,并且可以在单独存储被拒绝的行中文件,转换字段等.

可能不会立即出现的事情:pgLoader版本2是用Python编写的,版本3是用Lisp编写的.两者都可以从GitHub页面获得.

点赞