我正在将 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 脚本来处理此错误..
我正在将 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 脚本来处理此错误..
好吧,最好的方法是过滤数据不包含重复项。它通常很容易,不需要大量的编程。
例如:
假设您的数据的第一列是主键数据并且文件不是很大(假设小于 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