2009-08-11 3 views
0

CSV 파일을 포스트그레스로 가져옵니다.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" 

이 오류를 방지하는 가장 좋은 방법은 무엇입니까 .. 나는 ..이 오류를 처리 할 수 ​​

답변

2

음을 파이썬 스크립트를 작성하는 가장 좋은 방법은 포함하지 않는 데이터를 필터링하는 것겠습니까 중복. 일반적으로 매우 쉽고 많은 프로그래밍이 필요하지 않습니다. 예를 들어

:

데이터의 1 열 가정이 기본 키에 대한 데이터이며, 파일이 매우 큰되지 않습니다, 당신은 수 (의 당신의 RAM 레 60 % 이상을 가정 해 봅시다) :

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

을로드하고 /tmp/b.csv를로드하십시오. csv-fix 유틸리티의

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

사용 uniqe 명령 파일이 큰 경우

는, 그때는 다음과 같이 제안합니다.