[DBeaver] CSV 파일을 이용한 DB 대량 업데이트

wjdghks95·2024년 1월 8일
post-thumbnail

CSV 파일을 이용해서 데이터를 대량으로 업데이트 하는 방법에 대해 알아보자.
나는 기존에 계속 DBeaver 툴을 사용해왔기에 이를 이용해서 업데이트를 하려고 한다.

CSV 파일 준비

먼저 업데이트를 위해 필요한 데이터를 가진 csv 파일을 준비한다.
DBeaver를 사용해서 csv 파일을 만드는 방법은 아주 간단하다. 만드는 방법에 대해서는 아래 링크에 정리해 두었다.

https://velog.io/@julee/DBeaver-CSV-%ED%8C%8C%EC%9D%BC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%82%B4%EB%B3%B4%EB%82%B4%EA%B8%B0

혹은, 필요한 데이터만 조회하여 csv 파일을 만들 수도 있다. 이 경우엔 데이터 조회 후 데이터 추출을 선택하면 된다.

CSV 파일 가져오기

다음 csv 파일을 가져와 임시 테이블을 생성한다.
csv 파일을 가져오는 방법에 대해서는 아래 링크에 정리해 두었다.

https://velog.io/@julee/DBeaver-CSV-%ED%8C%8C%EC%9D%BC-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

여기서는 기존 테이블에 데이터를 INSERT 하는 방식으로 설명하고 있지만 테이블을 새로 생성하는 방법도 거의 동일하다.

MERGE문 작성

마지막으로 MERGE문을 사용하여 테이블을 업데이트한다.

MERGE INTO EMP target
USING (
    SELECT
        EMPNO,
        ENAME,
        JOB,
        MGR,
        ...
    FROM data_temp --data_temp는 로드한 데이터를 임시 테이블
) source
ON (target.EMPNO = source.EMPNO)
WHEN MATCHED THEN
    UPDATE SET
        target.ENAME = source.ENAME,
        target.JOB = source.JOB,
        target.MGR = source.MGR,
        ...;

0개의 댓글