merge 관련 질문입니다..(같은테이블) 0 2 3,517

by 손님 [2008.10.23 17:58:04]



MERGE INTO RECEIVE_MONTH MON                           
USING (SELECT * FROM RECEIVE_MONTH WHERE MEMBER_ID = ?
        AND ITEM_CD = ? AND REQ_YM = ?) S_MON   
ON(S_MON.MEMBER_ID = MON.MEMBER_ID)
WHEN MATCHED THEN                          
    UPDATE SET RECEIVE_AMT = ?
WHEN NOT MATCHED THEN                   
   INSERT (MEMBER_ID , ITEM_CD , REQ_YM, RECEIVE_DT, RECEIVE_AMT, CONTAC_TEACHER_BE_CD,
   CONTAC_TEACHER, RCPT_TEACHER_BE_CD, RCPT_TEACHER, FIR_RCPT_TEACHER)
   VALUES ( ?,?,?,?,?,?,?,?,?,?)  ; 

-------------------------------------------------------------------------------------------------------------------------------------------

쿼리를 돌리면 되지가 않아요..ㅠㅠ

웹상에서 뿌리면 UPDATE는 되는데 INSERT가 안됩니다..

이유가 뭘까요..?

아시는분 도움 좀 주세요.

by 호야 [2008.10.24 09:27:12]
INSERT 부분만.. 제대로 된 INSERT 구문으로 만든후에
테스트 해 보세요..-_-

by 웅 [2008.10.24 10:07:51]
업데이트밖에 나올 수 없을듯하네요..
RECEIVE_MONTH이 타겟인 동시에 소스테이블이니...
MEMBER_ID로 존재여부를 확인할때 항상 MATCHED 가 될 수 밖에 없겠네요.
보통 merge into를 쓸 때는 병합될 테이블과 소스테이블은 다른 집합이어야되지요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입