2009-08-11 7 views
0

J'importe un fichier CSV dans postgres.Postgres csv importation erreur de clé en double?

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" 

Quelle est la meilleure façon d'éviter cette erreur .. Est-ce que je dois écrire un script python pour gérer cette erreur ..

Répondre

2

Eh bien, la meilleure façon serait de filtrer les données de ne pas contenir doublons. C'est généralement assez facile et ne nécessite pas beaucoup de programmation.

Par exemple:

En supposant 1ère colonne de vos données sont des données pour la clé primaire et le fichier est pas très grand (disons les 60% de la RAM), vous pouvez:

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

et chargez /tmp/b.csv à la place.

Si le fichier est plus grand, alors je suggère quelque chose comme ceci:

sort /tmp/a.csv | awk -F, 'BEGIN {P="\n"} ($1 != P) {print $0; P=$1}' > /tmp/b.csv 
Questions connexes