Database/PostgreSQL

[PostgreSQL] UPSERT

JiWonSon 2021. 8. 18. 13:11

 

1. UPSERT란?

INSERT를 시도할때 조건(상황)에 따라 UPDATE를 할 수 있는 구문입니다. 

* ORACLE의 MERGE INTO와 같은 역할을 하는 구문

 

 

 

2. 사용 예시 !

 

1) 기본적인 예시

 

 

INSERT INTO example(

      USERID,NAME,EMAIL

)VALUES(

      'kim','김00','kim@naver.com'

)

ON CONFLICT(USERID) DO

UPDATE

      SET

        NAME = '김00',

        EMAIL = 'kim@naver.com';

 

## USERID key를 기준으로 insert 혹은 update를 실행한다.

 

 

2) INSERT할 경우 KEY값이 중복 되었을 때 아무것도 하지 않을 경우

 

 

INSERT INTO example (

      USERID, NAME, EMAIL

) VLAUES (

      'kim','김00','kim@naver.com'

) ON CONFLICT (USERID) DO NOTHING;