SQL

[Oracle] SELECT UPDATE 문 작성 방법

하루종일v 2023. 10. 3. 12:37

UPDATE "UPDATE_TABLE" A
       SET A.COLUMN = (SELECT B.COLUMN

                                               FROM "SELECT_TABLE" B

                                            WHERE  B.JOIN_COLUMN = A.JOIN_COLUMN )
 WHERE A."COLUMN  " = "VALUE";


 

단순 SELECT UPDATE문의 경우 위 항목에서 JOIN_COLUMN부분만 제거 하면된다.

위 방법은 UPDATE하려는 TABLE과 SELECT TABLE의 JOIN이 필요한 SELECT UPDATE문이다.

 

 

위 방법을 사용하게된 상황은 게시판 마이그레이션 할때 게시글을 내용을 대량으로 조회하여 INSERT 할때 

시간이 너무 오래 걸려 DB LOCK이 걸리는 상황이 발행하여 이관이 안되었어다.

 

여러 방법이 있겠지만

게시판 마이그레이션 시 먼저 INSERT 할때 내용은 EMPTY_CLOB() 으로 INSERT하고

INSERT가 끝나고 난후 위 방법을 사용하여 내용을 UPDATE 하였다.

반응형