728x90

 

데이터가 있으면 수정, 없을 경우 삽입을 하는 쿼리를 짜려고 할 때,

- Oracle에서는  Merge into라는 기능이 존재

- MySQL에서는 On duplicate key를 쓰면 됨

 

 

--Oracle
MERGE INTO table_name alias
            USING (table | view | subquery) alias                -- 하나의 테이블만 이용한다면 DUAL 활용
                 ON (join condition)                                     -- WHERE절에 조건 쓰듯이
            WHEN MATCHED THEN                                   -- ON 이하의 조건에 해당하는 데이터가 있는 경우 
                     UPDATE SET col1 = val1[, ...]                -- UPDATE 실행
            WHEN NOT MATCHED THEN                           -- ON 이하의 조건에 해당하는 데이터가 없는 경우
                     INSERT (column lists) VALUES (values);  -- INSERT 실행

--MySQL

INSERT INTO
      dm.product_t02 (
         column_name_1,
         column_name_2,
         column_name_3
      )
   VALUES (
      value_1,
      value_2,
      value_3'     
   )
   ON
      DUPLICATE KEY
   UPDATE
      column_name_1=value_1,
      column_name_2=value_2,
      column_name_3=value_3;

 

Referencehttps://unabated.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-MERGE-INTO-%ED%95%9C%EB%B2%88%EC%97%90-INSERT-UPDATE-%ED%95%98%EA%B8%B0

unabated.tistory.com/entry/오라클-MERGE-INTO-한번에-INSERT-UPDATE-하기

http://pkban.blogspot.com/2019/11/mysql-merge-into.html

728x90

'Dev > DB' 카테고리의 다른 글

[MySQL] 다중 update 쿼리 방법  (0) 2020.07.07
[MySQL] batch작업  (0) 2020.07.02
[MyBatis] Like 처리 방법  (0) 2020.06.30
[MySQL] SELECT IF, EXIST  (0) 2020.06.30
[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)  (0) 2020.06.26

+ Recent posts