10.2.2 다중 테이블 데이터 수정하기
UPDATE 문을 사용해 다중 테이블, 즉 2개 이상의 테이블을 대상으로 값을 변경할 수도 있습니다. 여기서 다중 테이블은 두 가지 의미가 있습니다. 하나는 한 테이블의 값을 변경할 때 다른 테이블의 값을 참조해서 변경할 수 있다는 뜻이고, 다른 하나는 2개 이상의 테이블 값을 동시에 변경할 수도 있다는 뜻입니다. 먼저 구문을 살펴보겠습니다.
구문 10-5
UPDATE 테이블1, 테이블2, ...
SET 칼럼1 = 값1,
칼럼2 = 값2, ...
WHERE 조건;
다중 테이블 UPDATE 문은 UPDATE 다음에 2개 이상의 테이블을 명시할 수 있습니다. 2개 이상의 테이블을 명시한다는 것은 테이블 간 관계를 이용해서 다른 테이블의 칼럼을 참조해 값을 변경한다는 의미입니다. 이런 경우에는 WHERE 절에 테이블 간 관계 정보인 조인 조건을 기술할 수 있습니다. 그리고 다중 테이블 UPDATE 문에서는 ORDER BY와 LIMIT 절을 사용할 수 없습니다.
코드 10-19
UPDATE emp_update2 a, emp_update1 b
SET a.salary = b.salary + 1000
WHERE a.emp_no = b.emp_no;
SELECT *
FROM emp_update2;
실행결과