티스토리 뷰
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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- mybatis
- rocky
- Kotlin
- Java
- input
- 오라클
- Mac
- springboot
- config-location
- 북리뷰
- k8s
- Github Status
- Bash tab
- mybatis config
- LocalDateTime
- LocalDate
- intellij
- Spring
- JavaScript
- Spring Security
- 베리 심플
- window
- elasticsearch
- maven
- svn
- Linux
- localtime
- jQuery
- docker
- oracle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함