보통 DB에서 alter table 작업은 다음과 같이 한다.
alter table table_name
drop column column
;
위의 문장은 table_name 의 column 컬럼을 제거하겠다는 명령이다.
하지만 db2에서 위 명령을 실행한 후,
select * from table_name;
명령을 실행하면
SQL0668N Operation not allowed for reason code "7"
과 같은 오류를 발생시키면서 select 쿼리를 실행하지 못한다.
이런 경우,
reorg table table_name ;
을 실행하면 위의 오류가 해결 된다.
***
column 추가
==>
alter table table_name
add column column_name data_type ;
column 명 변경
==>
alter table table_name
alter column column_name_org
set default 'modified_column_name' ;
pk 삭제
==>
alter table table_name
drop primary key
pk 추가
==>
alter table table_name
add primary key field_name
column 의 data type 변경
==>
alter table table_name
alter column column_name
set data type 변경할 데이터 타입.
=========================================
pk 변경하기 위한 작업절차
-- pk 에 추가할 컬럼 생성. (pk 이기 때문에 not null 로 생성해야 됨)
alter table <테이블명>
add column <컬럼명> <데이터타입> not null default 1
;
-- 테이블 데이터 확인.
select *
from <테이블명>
;
commit;
-- reorg 작업.
reorg table <테이블명> ;
-- pk 제거
ALTER TABLE <테이블명>
drop PRIMARY KEY
;
-- pk 재생성
ALTER TABLE <테이블명>
ADD PRIMARY KEY
(pk 컬럼1, pk 컬럼2, ... , pk 컬럼N )
;
CREATE SEQUENCE <Sequence명>
AS INTEGER
START WITH 1
CACHE 20
ORDER
;
----
sequence 삭제
drop SEQUENCE <Sequence명>