<MERGE>
- 테이블의 데이터를 입력, 수정, 삭제를 한 번에 수행하는 방법
▼ 사원 테이블에 부서 위치 컬럼 추가하고,
부서 테이블을 이용해 해당 사원의 부서 위치 값을 갱신하기
& 만약 부서 테이블에는 존재하는데 사원테이블에 없는 부서 번호라면
새롭게 사원tbl에 입력되도록 하기
▶ MERGE문은 데이터 입력과 수정, 삭제를 한 번에 수행할 수 있게 해줌
▷ emp 테이블에 loc 컬럼에 d.loc로 값을 갱신할 수 있게 해주는 MERGE문.
▶ MERGE INTO 다음에 MERGE 대상이 되는 타겟 테이블명을 작성 (여기서는 emp)
- USING절 다음에는 사용할 소스 테이블명 작성
> 여기서는 DEPT. DEPT 테이블의 데이터로 EMP 테이블을 MERGE함.
- 3. 타겟 테이블과 소스 테이블을 조인함. 조인에 성공하면 첫번째 WHEN인 UPDATE 실행,
실패하면 두번째 WHEN문인 INSERT 절을 실행함.
- 6,7 만약 조인에 성공했을 때만 실행하고 싶다면, 여기는 굳이 안적어도 됨.
▽ 요런식으로
▶ 만약 merge문을 사용하지 않는다면 아래와 같이 할 수 있음
성공했을때 / 실패했을 때 따로 실행되게 하려면 merge문이 더 나을수도 있을 듯.
'데이터베이스 > SQL' 카테고리의 다른 글
SQL 서브 쿼리 사용해 데이터 수정하기 (0) | 2024.01.23 |
---|---|
SQL 서브 쿼리를 사용해 데이터 입력하기 (0) | 2024.01.19 |
SQL 데이터 저장 및 취소 COMMIT, ROLLBACK (0) | 2024.01.16 |
SQL 데이터 삭제하기 DELETE, TRUNCATE, DROP (0) | 2024.01.15 |
SQL 데이터 수정하기 UPDATE (0) | 2024.01.12 |