본문 바로가기

Dev-/SQL

MySQL에서 Merge Into(데이터가 있으면 수정, 없으면 삽입) 사용하기

쿼리를 잘 몰라, 

특정 데이터가 있다면 수정, 없다면 삽입해야 하는 경우 아래와 같이 해결했다.


/**
* DB에 데이터가 없다면 = insert
*/
if (service.selectBoard(seq) == null) {
service.insertBoard(board);

/**
* 있다면 = update
*/
} else {
service.updateBoard(board);
}



Oracle에는 이를 간단히 해결하기 위해 Merge Into라는 기능이 있고,

Mysql에서는 아래와 같이 사용하면 된다.


<insert id="insertBoard" parameterType="board">
INSERT INTO
TB_BOARD (
COULUMN_1,
COULUMN_2,
COULUMN_3
)
VALUES (
VALUE_1,
VALUE_2,
VALUE_3
)
ON
DUPLICATE KEY
UPDATE
COULUMN_1 = VALUE_1,
COULUMN_2 = VALUE_2,
COULUMN_3 = VALUE_3
</insert>



자세한 사용법은 알아봐야겠지만, 있다는 사실을 아는게 중요한 거 같다.