본문으로 바로가기

[MySQL] JOIN UPDATE

category Back-end 2019.03.18 20:38
두 개 이상의 테이블을 조인해서 레코드를 업데이트 하는 쿼리를 JOIN UPDATE 라고 한다.

서브 쿼리를 사용해서 업데이트 할 경우에는 보통 업데이트 할 값을 정해서 수행하는 반면,
예)
UPDATE [테이블1] SET [컬럼] = ‘값’ WHERE ID IN (SELECT ID FROM [테이블2] WHERE ID IS NOT NULL);

JOIN UPDATE는 조인된 테이블 중에서 특정 테이블의 컬럼 값을 이용해 다른 테이블의 칼럼에 업데이트 해야 할 때 JOIN UPDATE를 사용한다.
또는 조인되는 양쪽 테이블에 공통적으로 존재하는 레코드만 찾아서 업데이트하는 용도로도 사용할 수 있다.
형식)
UPDATE [테이블명1] A INNER JOIN [테이블명2] B
ON A.[조인할 컬럼명] = B.[조인할 컬럼명]
SET A.[변경할 컬럼명] = { 변경할값 또는 B.[조인된 결과의 컬럼명] }
( WHERE 절 )
JOIN UPDATE는 조인되는 모든 테이블에 대해 읽기 참조만 되는 테이블은 읽기 잠금이 걸리고, 칼럼이 변경 되는 테이블은 쓰기 잠금이 걸린다.
웹 서비스와 같은 OLTP 환경에서는 데드락을 유발할 가능성이 높으므로 많이 사용하지 않는 것이 좋고,
배치 프로그램이나 통계용 UPDATE 문장에서는 유용하게 사용할 수 있다.



댓글을 달아 주세요

대마도사 블로그
블로그 이미지 대마도사 님의 블로그
MENU
VISITOR 오늘15 / 전체12,225