[postgreSQL] 에서 select 문과 upsert문 한번에 처리 방법 0 2 1,517

by ampwings [DB 기타] [2016.08.12 03:32:52]


여러개의 파트 넘버를 한번에 조회 하기 위해서 아래와 같은 select 문을 foreach 로 돌리고 

            SELECT country, b_Name, partNum, description, msrp

            FROM vParts_All

            WHERE partNum=#{element.partNum} AND country='USA'

 

조회된 파트넘버마다 WITH upsert ~ 문으로 한번에 처리 하고자 합니다. 

 

하나의 파트넘버를 조회하고 해당 조회된 행을 upsert 하는 것은 가능한데

여러 파트넘버를 조회해서 해당 값들을 변수에 저장하고 이들을 순차적으로 upsert 하는 방법을 모르겠습니다. 

커서를 이용해야 하는 건지 ... 

pg/sql문 사용이 많이 미숙해서 어떤 방식으로 해야 하는지 감을 못잡고 있어요 . 

by 이재현 [2016.08.12 16:23:36]

by ampwings [2016.08.13 04:26:45]

댓글 주셔서 감사합니다. 

코드 보면서 궁금한 점이 있어서 질문합니다. 

WITH TEST AS (
UPDATE world_human A
SET cel_phone = B.cel_phone, email_addr = B.email_addr
FROM servay B
WHERE A.human_id = B.human_id
RETURNING A.*)

INSERT INTO world_human(human_id, cel_phone, email_addr)
SELECT C.human_id, C.cel_phone, C.email_addr
FROM servay C
WHERE C.human_id NOT IN (SELECT human_id FROM TEST)
;

RETURNING A.*  -> 이것을 써준 이유가 변경된 사항을 추출하기 위함인가요? 궂이 변경된 내용을 볼 일이 없다면 안써주어도 되나요? 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입