오라클 시스템에서 (여기서는 classification.articleID로 인덱스한 것을 가정함)
UPDATE
(
  SELECT *
    FROM articles
    JOIN classification
      ON articles.articleID = classification.articleID
   WHERE classification.classID = 1
)
SET updated_column = updatevalue
2개의 테이블 join해서 A 테이블의 aa컬럼값을 B테이블에 bb 컬럼값으로 업데이트 하고 싶을때..
update /*+bypass_ujvc*/ (
       select A.aa, B.bb
       from A, B
       where A.cc = B.cc
       )
   set A.aa = B.bb
이렇게 하면 업데이트 된다. /*+bypass_ujvc*/ 힌트를 주지 않으면 ORA-01779: 키-보존된것이 아닌 테이블로 대응한 열을 수정할 수 없습니다 갈 발생한다..
'SQL > 오라클(Oracle)' 카테고리의 다른 글
| 오라믈 EXCEPTION 처리. (2) | 2013.04.02 | 
|---|---|
| 오라클(Oracle) 테이블 존재 여부 확인하기 (116) | 2013.03.27 | 
| 오라클, start with connect by prior. 계층구조로 정렬하기. (924) | 2013.03.25 | 
| RANK() 함수 (2) | 2013.03.25 | 
| 오라클 전화번호에서 '-', space, '.' 제거하기 (12) | 2013.03.25 | 
댓글