Oracle merge into의 이점

2446 단어
간단한 소개
Oracle merge into 명령은 말 그대로'있으면 업데이트되고 없으면 삽입된다'는 뜻이다. 이것도merge into 명령의 핵심 사상이다. 실제 개발 과정에서 우리는 두 표를 통해 서로 관련되고 일치하지 않는 한 표의 일부 필드를 업데이트하는 이런 업무를 자주 만나게 되고 일치하지 않는 상황에서의 업무를 처리해야 한다.이때 당신은 테이블의 데이터량이 증가함에 따라 이와 같은 업무 장면의 집행 효율이 비교적 느릴 수 있다는 것을 발견할 수 있다. 그것은 두 테이블의 데이터를 여러 번 반복해서 조회해야 하기 때문에merge into 명령을 통해 한 번만 관련되면'유칙갱신, 무칙삽입'의 업무 장면을 완성하고 문장의 집행 효율을 크게 높일 수 있기 때문이다.
구문
1 merge into A  using B  on (A .id = B .id)
2 when matched then --   ,   A   
3 update set A.col=B.col
4 when not matched then --    , A     
5  insert (a,b,c) values ('a','b','c');

설명: B표를 이용하여 A표를 통과한다.id=B표.id의 조건은 A표와 일치하며, 조건이 충족되면 A표를 업데이트할 수 있으며, 조건이 충족되지 않을 때inert 문장을 이용하여 관련 데이터를 삽입할 수 있다.
케이스
merge into student.stuinfo_2018 A
using student.stuinfo B
on (A.stuid = B.stuid)
when matched then --    A    
  update set A.age = B.age
when not matched then --     A    
  insert
    (a.STUID,
     a.STUNAME,
     a.SEX,
     a.AGE,
     a.CLASSNO,
     a.STUADDRESS,
     a.GRADE,
     a.ENROLDATE,
     a.IDNUMBER)
  values
    (b.STUID,
     b.STUNAME,
     b.SEX,
     b.AGE,
     b.CLASSNO,
     b.STUADDRESS,
     b.GRADE,
     b.ENROLDATE,
     b.IDNUMBER);

좋은 웹페이지 즐겨찾기