我正在将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脚本来处理此错误..
答案 0 :(得分:2)
嗯,最好的方法是过滤数据不包含重复项。它通常很简单,并且不需要很多编程。
例如:
假设您的数据的第一列是主键的数据而且文件不是很大(假设您的ram小于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
答案 1 :(得分:0)