꾸준하게 기록하기
article thumbnail

 

MERGE 

변경할 테이블에 데이터가 있는지 확인 하고 insert , update 를 한번에 처리 할 수 있다.

 

MERGE INTO 변경할 테이블
USING (select 1 as dummy) a
ON 비교할 조건
WHEN MATCHED THEN
UPDATE SET 칼럼 = '값'     // 조건 만족하는 데이터가 있는 경우 
WHEN NOT MATCHED THEN 
INSERT (칼럼) VALUES (값);   // 조건 만족하는 데이터가 없는 경우

 

* MERGE 문은 세미콜론(;)으로 종료해야 한다. 

 

 

EX. 

 

SELECT * FROM kkk_test;

 

- MERGE 사용해서 update 해보기

MERGE INTO kkk_test as a
USING (SELECT 1 AS dual) AS b
ON (a.id=71) 
WHEN MATCHED THEN
update SET a.username='홍길동'
WHEN NOT MATCHED THEN
insert (userid, username, phone, email, address, contents) 
VALUES ( 'test1234', '홍길동' , '01012345678', 'test@test.com', '서울', 'test');

 

id가 71인 데이터가 있으므로 username 이 admin에서 홍길동으로 update 된 내용 확인

 

 

- MERGE  사용해서 insert 해보기

MERGE INTO kkk_test as a
USING (SELECT 1 AS dual) AS b
ON (a.id=72) 
WHEN MATCHED THEN
update SET a.username='홍길동'
WHEN NOT MATCHED THEN
insert (userid, username, phone, email, address, contents) 
VALUES ( 'test1234', '홍길동' , '01012345678', 'test@test.com', '서울', 'test');

id 가 72인 데이터가 없었으므로 insert 된 내용 확인!

 

728x90

'Database' 카테고리의 다른 글

SQL 알아보기  (0) 2022.12.07
[oracle] null 처리하기 (NVL, NVL2 함수)  (0) 2022.11.30
서브쿼리(SubQuery)  (0) 2021.09.08
JOIN  (0) 2021.09.08
[mysql] 값이 없으면 insert 있으면 update  (0) 2021.07.09
profile

꾸준하게 기록하기

@:_:

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!