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

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

例えば:

データの最初の列が主キーのデータであり、ファイルがそれほど大きくないと仮定すると (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
于 2009-08-11T16:35:21.047 に答える
0

csv-fixユーティリティuniqeのコマンドを使用します。

于 2013-08-18T09:57:49.627 に答える