IT/Database

postgresql merge문

상짱 2020. 1. 13. 13:56
반응형
WITH UPSERT AS(
	UPDATE 테이블명
	   SET COLUMN_ID = #{columnId}
	 WHERE UNIQ_KEY  = #{uniqKey} RETURNING *
)
INSERT
  INTO 테이블명 (
	   UNIQ_KEY
	 , COLUMN_ID
)
SELECT #{uniqKey}
     , #{columnId}
 WHERE NOT EXISTS ( SELECT * FROM UPSERT )
UPDATE 하지 않은 키값에 대해서 INSERT 가 된다.
반응형