본문 바로가기

Data Layter

데이터가 있는 컬럼에 데이터 타입 변경하는 꿀팁

테이블에 데이터가 이미 들어 있는 경우 데이터 타입을 변경할 때

테이블에 변경할 컬럼과 이름을 새롭게 추가하고 데이터를 넣은 후 컬럼 이름을 변경한다.

 

아래와 같이 변경한다고 가정하자

MODIFY_DATETIME VARCHAR(20) → MODIFY_DATETIME TIMESTAMP(3) WITH TIME ZONE

 

1. MODIFY_DATETIME_TZ TIMESTAMP(3) WITH TIME ZONE 로 컬럼을 추가한다.

   ALTER TABLE TABLE_NAME ADD COLUMN MODIFY_DATETIME_TZ TIMESTAMP(3) WITH TIME ZONE

2. UPDATE를 통해 MODIFY_DATETIME_TZ 에 형식에 맞춰 캐스팅한 데이터를 넣는다.

   UPDATE TABLE_NAME 

   SET MODIFY_DATETIME_TZ =

   TO_TIMESTAMP_TZ(TO_TIMESTAMP(MODIFY_DATETIME), 'YYYY.MM.DD HH24:MI:SS.FF3');

3. 기존 MODIFY_DATETIME 컬럼을 삭제한다.

   ALTER TABLE TABLE_NAME DROP COLUMN MODIFY_DATETIME

4. MODIFY_DATETIME_TEMP 컬럼의 이름을 MODIFY_DATETIME 으로 바꿔준다.

   ALTER TABLE TABLE_NAME

   RENAME COLUMN MODIFY_DATETIME_TEMP TO MODIFY_DATETIME로 이름을 변경한다.

'Data Layter' 카테고리의 다른 글

그런 Rest Api로 괜찮은가?  (1) 2020.07.22