테이블에 데이터가 이미 들어 있는 경우 데이터 타입을 변경할 때
테이블에 변경할 컬럼과 이름을 새롭게 추가하고 데이터를 넣은 후 컬럼 이름을 변경한다.
아래와 같이 변경한다고 가정하자
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 |
---|