0

我正在将 CSV 文件导入 postgres。

copy product from '/tmp/a.csv' DELIMITERS ',' CSV;
ERROR:  duplicate key value violates unique constraint "product_pkey"
CONTEXT:  COPY product, line 13: "1,abcd,100 pack"

避免此错误的最佳方法是什么.. 我是否必须编写一个 python 脚本来处理此错误..

4

2 回答 2

2

好吧,最好的方法是过滤数据不包含重复项。它通常很容易,不需要大量的编程。

例如:

假设您的数据的第一列是主键数据并且文件不是很大(假设小于 60% 的内存),您可以:

awk -F, '(!X[$1]) {X[$1]=1; print $0}' /tmp/a.csv > /tmp/b.csv

并改为加载 /tmp/b.csv 。

如果文件更大,那么我会建议这样的事情:

sort /tmp/a.csv | awk -F, 'BEGIN {P="\n"} ($1 != P) {print $0; P=$1}' > /tmp/b.csv
于 2009-08-11T16:35:21.047 回答
0

使用csv-fix实用程序uniqe的命令。

于 2013-08-18T09:57:49.627 回答