我想知道是否可能?如果由于某种原因导致无法导入行 恩。重复的主键,错误的输入类型等可以忽略并移动到下一行吗?
我收到了这个
ERROR: duplicate key value violates unique constraint "team_pkey"
DETAIL: Key (team)=(DEN) already exists.
CONTEXT: COPY team, line 23: "DEN,Denver,Rockets,A"
文件中存在很多错误,它是一个非常大的错误,所以可以忽略无法插入的行吗?
答案 0 :(得分:2)
To ignore duplicate keys during 'copy from' in postgresql中描述了处理重复键问题的解决方案 - 简而言之,使用无约束临时表和select distinct on uniquefield
到目标表中。
另一种方法是使用pgLoader。遗憾的是,文档似乎已从网站上消失,但有关the author's site的一些教程文章。它具有丰富的功能,可以帮助您阅读有问题的数据,并可以执行诸如将拒绝的行存储在单独的文件中,转换字段等内容。
可能不会立即出现的事情:pgLoader版本2是用Python编写的,版本3是用Lisp编写的。两者都可以从GitHub页面获得。