Notice
Recent Posts
Recent Comments
Link
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 사용법
- linux
- 백준 java jaekjoon JAVA
- putty
- jsonb select
- subversion
- ora-01476
- baekjoon
- rocky linux
- 제수가 0입니다
- Oracle
- 백준
- 1773번
- SVN
- javascript
- docker
- 백준 JAVA
- bekjoon
- install
- java
- 환경번수
- Rocky Linux 9
- jaekjoon java
- 메뉴얼
- jenkins
- DBeaver
- boj
- PostgreSQL
- 자바
- MAC
Archives
기록하는 개발자
Mybatis PostgreSQL 다중 UPDATE 본문
PostgreSQL의 jsonb_array_elements을 활용해서 다중업데이트 쿼리를 만들었는데
PostgreSQL 다중 Update - batch update
300만건이 넘는 데이터를 주기적으로 update 해야하는데 서버와 DB의 과도한 부하 발생을 대비하기 위해 사용 unnest 는 PostgreSQL의 내장 함수로 입력된 Array를 행집합으로 반환해준다. update test_table se
gitseok.tistory.com
Mybatis의 foreach를 사용해서 적용해보았다.
<update id="updateData" parameterType="java.util.List" >
update test_table
set data = (ex_data->'data')::int
from jsonb_array_elements(
'[
<foreach collection="list" item="item" separator=", ">
{ "id": ${item.id}, "data": ${item.data}}
</foreach>
]'
)as ex_data
where id = (ex_data->'id')::int
</update>
- collection : 전달받은 인자 값 (파라미터 명을 적는게 아닌 List, Array 타입을 적는 것)
ㄴ 받아온 parameterType과 일치해야함
- item : 전달받은 인자에 지정할 변수명
- separator : 반복 되는 사이에 들어가는 문자열
- open : 해당 구문이 시작될 때 들어가는 문자열
- close : 해당 구문이 끝날 때 들어가는 문자열
- index : 반복되는 구문 번호(0부터 시작)
'웹 개발 > Spring' 카테고리의 다른 글
Comments