개발.log/database

[Mysql][MariaDB] 서로 다른 테이블 동시에 UPDATE 하는 법/다른 테이블을 참조하여 UPDATE 하는 방법

개발하는 주디씨 2023. 9. 20. 09:57

 

하나의 Model DTO에 담긴 데이터로 두 개의 UPDATE 처리를 해야한다면?

 

 

지금까지는 정석대로 <UPDATE> 2개를 순차적으로 수행시키는 방법으로 해왔다. 하지만, 뭔가 귀찮다는 생각이 들었다... 그리고 DTO를 중복해서 넘겨서 사용하는 것도 뭔가 불필요하다고 생각했다... 한번 작성한 DTO parameter 코드를 중복하지 않고 한번에 쿼리로 처리를 하는 방법을 쓰려면 어떻게 쿼리를 작성해야할까 고민하다가 다음과 같은 방법으로 해결하였다.

 

Oracle, MS-SQL, Maria DB, Mysql DBMS마다 다른 문법을 지원하므로 방법도 각자 다르니 본인 상황에 맞는지 확인해야한다

 

MySQL and MariaDB

UPDATE
    SR0001 a,
    SR0002 b
SET
	a.dstba = #{dstba}
    b.test = #{test}
    a.status = #{status}
WHERE
    a.id = #{id} 
    AND b.trst = #{trst}