사용자 도구

사이트 도구


oracle:update_join

문서의 이전 판입니다!


Update Join

  1. Oracle
-- Oracle --
-- 1. SubQuery 를 이용한 Update
UPDATE emp e
   SET e.dname = (SELECT d.dname FROM dept d WHERE d.deptno = e.deptno)
 WHERE EXISTS (SELECT 0 FROM dept d WHERE d.deptno = e.deptno)
;
-- 2. Updatable Join View 이용
--    단, d.deptno 가 반드시 PK 이어야 함
--    10G 까지는 PK 아니더라도 힌트로 제어 가능(/*+ bypass_ujvc */)
UPDATE /*+ bypass_ujvc */
       (SELECT e.dname
             , d.dname AS dname_new
          FROM emp  e
             , dept d
         WHERE d.deptno = e.deptno
        )
   SET dname = dname_new
;
-- 3. Merge
MERGE INTO emp e
USING dept d
ON (d.deptno = e.deptno)
WHEN MATCHED THEN
UPDATE SET e.dname = d.dname
;
oracle/update_join.1596158050.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)