셀프 조인 다중 업데이트? 0 2 872

by 열심열심 [2017.12.07 10:40:36]


한테이블에 대해 컬럼1과 컬럼2를 더해서 컬럼 1에 합하고 컬럼 2는 0으로 만드는 업데이트절을 만들려고 하는데 

한컬럼에 대한 primary key가 없어서 2컬럼이 합쳐야 유니크 키 값이 나옵니다. 

그래서 처음엔 타 db처럼 셀프 조인해서 update table a, (select ~~ ) b set a.col2=(select col2+col3), a.col3=0

where a.col4=b.col4 and a.col5=b.col5 and 조건 값 이런 식으로 하려니까 안되더라구요 그래서 

찾아보니 /*+ bypass_ujvc */ 이게 있어서 편하게 하긴 했는데 

이럴 경우 타 디비 변경시 사용할수 없을 것 같아 다른 방법이 있는지요?

그리고 혹시나 col3=0이 먼저 수행되는 경우는 없겠죠??

업데이트되는 값은 다중입니다. 

 

by 마농 [2017.12.07 10:51:23]
-- 셀프 조인이 필요 없습니다.
UPDATE table
   SET col2 = col2 + col3
     , col3 = 0
 WHERE -- 조건 --
;

 


by 열심열심 [2017.12.07 10:57:57]

아 set절에서도 덧셈이 먹히는거였군요.. 이렇게 간단하다니 .... 감사합니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입