본문 바로가기
개발팁

Oracle DB 테이블명 변경, 테이블 변경 오라클 rename table

by devscb 2025. 4. 5.
반응형

한줄요약

ALTER TABLE [변경전 테이블명] RENAME TO [변경 후 테이블명];

-- 사용예)
ALTER TABLE TEST_TBL1 RENAME TO TEST_TBL1_BAK;

주의사항

제가 개발하고 있는 환경에서는 TABLE RENAME을 하더라도 RENAME된 테이블의 INDEX는 유지 되지만,
다른 인터넷에서의 사례를 보면, RENAME후 INDEX가 걸리지 않는 경우도 있는것으로 보입니다.
아래 쿼리를 사용하여 RENAME후에도 인덱스가 걸린채로 유지되는지 확인해보도록 하는게 좋을것 같습니다.

SELECT a.table_name 
     , a.index_name 
     , a.column_name 
  FROM all_ind_columns a 
 WHERE a.table_name = '[테이블명]' 
 ORDER BY a.index_name
        , a.column_position;

위 쿼리를 실행하면, 아래와 같은 형식으로 출력이 됩니다.

TABLE_NAME INDEX_NAME COLUMN_NAME
TBL1 IX1 COL1

RENAME 활용처

원본 테이블 tbl이 있을때,
tbl_bak 으로 백업db를 만들어서 insert into tbl1_bak select * from tbl 과 같이 데이터를 백업해두고,
원본 테이블이 tbl의 데이터가 손상이 되었을때 tbl1_bak 테이블을 tbl로 rename하여 데이터 원복을 수행할 수 있습니다.

728x90
반응형

댓글