update select 문의 1 1,193

by 삼만돌이 [SQL Query] update [2013.11.25 16:34:28]



update select 할때 모든 컬럼에 대해서 update하는 방법은 컬럼을 나열하는 방법 말고는 없나요?

tablea와 tablea_a는 동일한 테이블인데 dbl만 다른경우입니다.
기본적으로는 아래와 같이 하겠지만 모든 컬럼에 대해서 update를 해야 될경우에는 그 컬럼을 다 나열해주 방법 말고
그냥 select * 식으로 컬럼 나열 없이는 불가능한지요?
위험성때문일까요.

update tablea aa
set (cc,dd) = (select cc,dd from tablea_a@dblink where yy = aa.yy)
where kk = '123'
by 아발란체 [2013.11.25 17:10:40]
조회된 결과를 대입하여 업데이트 하는 방법이라면 비슷한 방법이 있습니다.
업데이트 구문 테이블 기술 절에
2개 테이블에 대해 조인한 형태로 뷰를 쓰시면 되며 해당 조회문은 키로 보존 되어야 합니다.
(조건절 양쪽 테이블 키 값 =)
또한 한쪽 테이블만 업데이트 할 수 있습니다.
동시 2개 테이블 업데이트는 되지 않습니다.(MySQL은 가능)

Merge 문도 방법이 되지 않을까 써봅니다.
강좌 : http://oracleclub.com/lecture/2225
위키 : http://wiki.gurubee.net/pages/viewpage.action?pageId=27427475