Background Image
조회 수 12409 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
데이터베이스를 운영 중 사용하던 칼럼의 data type을 변경해야하는 경우가 생길 수 있다.(변경을 권장하지 않는다.) 이러한 경우 CUBRID에서의 해당 칼럼 data type변경 방안과 각각에 대한 설명을 하도록 한다.

첫번째 변경 방법은 아래와 같다.
변경할 칼럼 이름 바꾸기 --> 원래 이름의 칼럼을 변경할 타입으로 추가 --> 데이터를 복제 --> 원본 칼럼을 삭제
사용예)
=== <Help: Schema of a Class> ===

<Class Name> 

dumy

<Attributes> 
...
exam character varying(300)

csql> alter table dumy rename exam as temp
csql> ;x

Current transaction has been committed.

1 command(s) successfully processed.

csql> alter table dumy add attribute exam string
csql> ;x

Current transaction has been committed.

1 command(s) successfully processed.

csql> update dumy set exam=cast(temp as string)
csql> ;x

23 rows updated.

Current transaction has been committed.

1 command(s) successfully processed.

csql> alter table dumy drop attribute temp
csql> ;x

Current transaction has been committed.

1 command(s) successfully processed.

csql> ;sc dumy

=== <Help: Schema of a Class> ===

<Class Name> 

dumy

<Attributes> 
...
exam string

Current transaction has been committed.
위의 경우 주의할 사항이 아래와 같다.
1. 프로그램 개발 시 각 칼럼을 명시적으로 표시되어 있어야 한다.
 - 위의 방법은 칼럼을 추가하고 삭제하므로 칼럼의 위치가 변경되므로 insert문 등에 각 칼럼이 명시적이지 않다면 순서의 오류로 인해 정상적인 작업이 진행되지 않을 것이다.
2. 칼럼을 추가 및 데이터 update방식이므로 to_char, to_number를 이용하여 데이터 복제가 가능하며, 경우에 따라 char --> int, int --> char 간의 이전이 가능하다. 단, 해당 데이터가 변경이 가능한 데이터로 입력되어 있어야 한다.

두번째 변경방법은 아래와 같다.
1. 원하는 테이블을 변경하고자 하는 칼럼만 변경하여 다른 이름으로 생성한다.
2. 원본 테이블의 데이터를 생성한 테이블로 이전한다.
3. 원본 테이블의 이름을 변경하고 생성한 테이블을 원본 테이블 이름으로 변경한다.
사용예)
=== <Help: Schema of a Class> ===

<Class Name> 

dumy

<Attributes> 
...
exam  character varying(300)

csql> create table dumy_new ...
csql> ;x
csql> insert into dumy_new select * from dumy
csql> ;x
csql> rename class dumy as dumy_bak;
csql> rename class dumy_new as dumy;
csql> ;x
=== <Help: Schema of a Class> ===

<Class Name> 

dumy

<Attributes> 
...
exam  string
위와 같이 수행할 경우 순서의 변화 없이 그대로 사용할 수 있다는 장점이 있다.
단, 테이블의 데이터가 많을 경우 전체를 읽어 insert하는 작업에 의해 서비스에 부하를 줄 수 있으며, 데이터 량에 따라 불필요한 공간의 사용 등의 문제가 발생할 수 있다.(dumy_new테이블은 서비스 테이블이 아니기에 서비스에 영향을 주지는 않는다.)

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
99 질의작성 한건의 데이타를 여러건으로 조회하는 쿼리입니다. 권호일 2012.03.30 9419
98 질의작성 세부내역과 소계를 한개의 쿼리문장으로 수행하는 SQL 권호일 2012.03.31 14092
97 마이그레이션 데이터베이스 마이그레이션(unloaddb & loaddb) 의 효과적인 수행방법 file cubebridge 2012.04.14 24549
96 운영관리 CUBRID 에서의 사용자 권한관리 방법 file cubebridge 2012.04.14 23653
95 마이그레이션 CUBRID Migration Tookit 8.4.1 file cubebridge 2012.04.14 11081
94 CUBRID 매니저 CUBRIDManager의 접속 정보 이관 file cubebridge 2012.04.14 12383
93 질의작성 문자(char, varchar)로 설계한 날짜데이타 검증하기 권호일 2012.04.27 17830
92 질의작성 게시판 응용 중 조회수로 정렬하는 경우 인덱스 생성 방법 1 손승일 2012.06.23 13905
91 운영관리 데이터 입력 중 디스크 공간 부족 오류가 발생하였을 때, 복구 방법 이용미 2012.06.30 14331
90 운영관리 Windows 서버에서 [장치에 쓰기 캐싱 사용] 설정/해제에 따른 성능 차이 이용미 2012.06.30 20231
89 기타 전자정부 표준프레임워크 CUBRID 사용 방법 문의 참조 cubebridge 2012.09.17 20602
88 운영관리 CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점 cubebridge 2012.09.18 33157
87 마이그레이션 오라클의 order by 시 first와 last 대체 사용법 file cubebridge 2012.11.12 20576
86 응용개발 오라클 to CUBRID로 마이그레이션 수행 시 주의사항 cubebridge 2012.11.12 16642
85 마이그레이션 MySQL에서 CUBRID로 갈아탈 때 알아야 할 것 cubebridge 2012.11.13 22616
84 응용개발 CUBRID-PHP-Driver 연동가이드 file cubebridge 2012.11.13 17136
83 CUBRID 매니저 CUBRID와 CUBRID Web Manager설치, 그리고 XE의설치 및 연동까지 file cubebridge 2012.11.13 18099
82 마이그레이션 MySQL+XE를 CUBRID+XE로 운영하기 – mysqldump파일과 CMT사용 file cubebridge 2012.11.13 23071
81 질의작성 join update 처리방법입니다.(연관성 있는 테이블을 조인하여 처리하는 UPDATE 구문) 권호일 2012.11.30 20394
80 질의작성 오류데이타검증 - 숫자 이외의 데이타 확인하는 방법 권호일 2013.01.17 21121
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales