2017-11-28 8 views
2

메모리의 컬렉션에 레코드 데이터를 postgres에 삽입하고 데이터베이스에 이미 존재하는 레코드를 무시하도록합니다 (동일한 기본 키를 사용하므로 키)하지만 나머지 인서트는 계속 사용하십시오.postgres에서 중복 키가있는 삽입을 무시하지만 계속 진행하는 방법

저는 clojure와 hugsql, btw를 사용하고 있습니다. 그러나 나는 언어에 구속받지 못할 수도 있습니다.

저는 본질적으로 데이터베이스를 이러한 방식으로 세트로 취급하고 있으므로 반 패턴을 사용하고있을 수 있습니다.

답변

7

당신은 포스트 그레스 (이 2016 월에 다시 출시 된 이후, 당신은 가정) 9.5 이상을 사용하는 경우, 당신이 사용할 수있는 매우 유용한 ON CONFLICT cluase있다 :

INSERT INTO mytable (id, col1, col2) 
VALUES (123, 'some_value', 'some_other_value') 
ON CONFLICT (id) DO NOTHING 
관련 문제