web관련 공부들

[Oracle] 오라클 컬럼 이동

초코맛 2022. 2. 21. 17:18
반응형

내가 사용하고 있는 DBMS는 Oracle SQL Developer인데,

토드는 테이블 컬럼 이동이 가능한 기능이 있다고 전해 들었으나,,

디벨로퍼는 기능이 따로 있는 것 같지 않았다.

 

따로 찾아보니,,

약간 야매같은 방법이긴 한데ㅋㅋ

효과는 원하는 결과! 굿굿😆

 

바로 바로

테이블을 복사하는 방법을 이용하는 것!

 

복사할 기존 테이블을 조회하면서, 원하는 순서의 컬럼대로 조회를 해오면 그대로 생성된다.

 

--test 테이블이 seq,tell,addr,name의 순서의 테이블이라고 하면
--test테이블 복사 생성
create table test_bak as select seq,name,tell,addr from test where 1=1;
--test테이블 삭제
drop table test;
--리네임도 되지만(rename test_bak to test;) 그냥 복사함.
create table test as select seq,name,tell,addr from test_bak where 1=1;
alter table test add constraint PK_TEST primary key(seq,name);

순서는 위와 같다.

 

1. 컬럼 이동을 원하는 테이블을 변경할 순서대로 컬럼을 명시하여 조회해 다른 이름으로 복사.

   이때, where 1=1은 데이터 내용까지 복사하는 것.

2. 기존의 테이블을 삭제하기 전에는 테이블 복사가 잘 되었는지 확인하고,

   ( select * from test_bak; & select count(*) from test_bak; )

   기존 테이블의 제약사항을 확인해둔다.

3. 복사한 테이블의 이름이 test_bak이기 때문에,

  리네임으로 테이블명을 바꾸던 다시 복사를 하던, 원래의 테이블명으로 만들어주는 것도 필수!

4. 최종 컬럼을 변경한 테이블에 같은 제약조건을 주는 것을 잊지 말자~!

 

이렇게 하면 동일한 제약사항과 데이터를 가진 변경된 컬럼의 테이블을 얻을 수 있다.👍👍👍

 

도움이 되었다면 🤍꾹! 

반응형