2009-08-11 59 views
0

私はCSVファイルをpostgresにインポートしています。Postgres CSVインポート重複キーエラー?

このエラーを回避する最善の方法は何
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スクリプトを記述する必要があります。..

答えて

2

まあ、含まれていないデータをフィルタリングすることです最善の方法重複します。通常はかなり簡単で、多くのプログラミングを必要としません。例えば

あなたのデータの1列目と仮定すると、プライマリキーのデータであり、ファイルが非常に大きくはない、あなたは可能性(のは、あなたのラムのレよりも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 
関連する問題