본문 바로가기
SQL/오라클(Oracle)

오라클 업데이트

by SSaMKJ 2013. 3. 25.
오라클 시스템에서 (여기서는 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: 키-보존된것이 아닌 테이블로 대응한 열을 수정할 수 없습니다
갈 발생한다..

댓글