데이터가 있으면 수정, 없을 경우 삽입을 하는 쿼리를 짜려고 할 때,
- 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;
unabated.tistory.com/entry/오라클-MERGE-INTO-한번에-INSERT-UPDATE-하기
'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 |