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');
- 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');
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 |