sql upsert(merge)구문

테이블table1  
    
SEQ_NOKOR_NAMEJOBSTATUS
10000001홍길동프로그래머10
10000002박개똥화가20

 

 

table1 에 다른 테이블은 아니고  아래와 같은 데이터를 넣으려고 합니다.

 

SEQ_NOKOR_NAMEJOBSTATUS
10000001홍길동사업가10
10000002이순자성악가10
10000003박개똥선생님10

 

MERGE INTO TABLE1 A
USING
(
  SELECT * FROM TABLE1 WHERE STATUS = '10'
) B
ON
(
  A.SEQ_NO = B.SEQ_NO
)
WHEN MATCHED THEN
   UPDATE SET A.JOB='사업가'
WHEN NOT MATCHED THEN
   INSERT VALUES (:SEQ_NO, :KOR_NAME, :JOB, :STATUS)

 

이렇게 쿼리를 날렸는데,

 

로그를 보면 쿼리가 3개가 날라갑니다.

홍길동, 이순자, 박개똥에 값이 두번째 테이블에 넣은것과 같이 들어가는 것이 보이는데..

막상 토드에서 select를 해보면 홍길동에 대한 값만 업데이트가 되어있고 이순자나 박개똥에 대한값은

insert가 되어있지 않습니다.

 

로그에 남은 이순자와 박개똥에 대한 쿼리를 토드에서 직접 돌려보면 에러 없이 insert가 완료 되는데

뭐가 문제인지 모르겠습니다.

아시는 분 답변 바랍니다.

 

'개발 Programming > ORACLE & DB' 카테고리의 다른 글

[MYSQL] DML 기초  (0) 2014.07.07
[MYSQL] SQL 기초  (0) 2014.07.07
사용자 권한 수정  (0) 2013.01.19
예약어 확인  (0) 2013.01.19
시스템 권한(System Privileges)  (0) 2010.12.24

댓글()