쿼리를 잘 몰라,
특정 데이터가 있다면 수정, 없다면 삽입해야 하는 경우 아래와 같이 해결했다.
/**
* 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>
자세한 사용법은 알아봐야겠지만, 있다는 사실을 아는게 중요한 거 같다.
'Dev- > SQL' 카테고리의 다른 글
LEFT OUTER JOIN 추가 제약조건(WHERE, ON의 차이) (0) | 2019.04.02 |
---|---|
서브쿼리 - 로우별 카운트 추가하기(쿼리 별칭,alias 범위) (0) | 2019.01.15 |