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 | 29 | 30 | 31 |
Tags
- poll scm
- 제수가 0입니다
- jsonb select
- 환경번수
- boj
- linux
- 자바
- ora-01476
- 메뉴얼
- java
- 1773번
- jenkins
- available plugins
- putty
- Rocky Linux 9
- 사용법
- baekjoon
- 백준 JAVA
- 백준
- 서버 접근
- PostgreSQL
- javascript
- subversion
- bekjoon
- SVN
- rocky linux
- 백준 java jaekjoon JAVA
- jaekjoon java
- tomcat-users.xml
- DBeaver
Archives
기록하는 개발자
PostgreSQL 다중 Update - batch update 본문
300만건이 넘는 데이터를 주기적으로 update 해야하는데 서버와 DB의 과도한 부하 발생을 대비하기 위해 사용
unnest 는 PostgreSQL의 내장 함수로 입력된 Array를 행집합으로 반환해준다.
update test_table set data = data_table.data
from
(select unnest(array[1, 2, 3, 4]) as id,
unnest(array[11, 12, 13, 14]) as data) as ex_data
where test_table.id = ex_data.id;
하지만 id와 data가 별도의 array로 들어가기 때문에 자칫하면 순번이 밀릴수도 있어서 json 형태로 수정
+mybatis foreach 와 접목하기 위해
update test_table
set data = (ex_data->'data')::int
from jsonb_array_elements(
'[
{ "id": 1, "data": 21 },
{ "id": 2, "data": 22 },
{ "id": 3, "data": 23 },
{ "id": 4, "data": 24 }
]') as ex_data
where id = (ex_data->'id')::int
정상적으로 수정 완료
다음 포스팅엔 mybatis foreach를 사용해서 속도 비교까지 진행할 예정
'DB > PostgreSQL' 카테고리의 다른 글
DBeaver PostgreSQL Create한 table이 보이지 않을때 해결법 (0) | 2023.11.29 |
---|---|
PostgreSQL text to jsonb 역슬래시 제거 (0) | 2023.11.28 |
PostgreSQL UPSERT (UPDATE+INSERT) (0) | 2023.02.03 |
DBeaver PostgreSQL 모든 Database 조회하기 (0) | 2022.06.17 |
[PostgreSQL] jsonb 특정 순번의 데이터 조회 (0) | 2022.04.25 |
Comments