데이터베이스
Mybatis Postgresql 수정 혹은 삭제한 데이터를 가져오고 싶은경우
터프남
2023. 12. 19. 22:17
728x90
반응형
환경
- spring boot 2.7.18
- postgresql
- mybatis
수정이나 삭제 한 데이터를 return 받고 싶은 경우가 있을땐 어떻게 할까?
미리 수정이나 삭제하기 전 오브젝트를 메모리에 담을 수도 있겠지만 postgresql에서는 삭제나 수정 후에 returning
이라는 키워드로 가져올 수 있다.
mybatis에서 사용하려면 select 태그에서 시작해야한다. 어찌보면 returning 되는 결과를 조회하는 거니까 당연한 것처럼 느껴진다.
<select id="" resultMap="vo" parameterType="java.lang.String">
DELETE
FROM 테이블
WHERE id = #{파라미터}
RETURNING *
또는
UPDATE 테이블
SET 필드 = 수정할 값
WHERE id = #{파라미터}
RETURNING *
</select>
만약 return된 결과를 특정값으로 정렬해서 받아보고 싶다면?
이 작업은 CTE(공통 테이블 표현식)를 사용하여 수행할 수 있다.
<select id="" resultMap="vo" parameterType="java.lang.String">
WITH deleted AS (
DELETE
FROM 테이블
WHERE id = #{파라미터}
RETURNING *)
SELECT *
FROM deleted
ORDER BY 칼럼
</select>
728x90
반응형