본문 바로가기

Computer Engineering/DB

오라클 테이블 변경 ( oracle alter table )

1. 컬럼 추가

SQL> alter table emp3
  2  add ( ssn1 number);

Table altered.



2. 컬럼 변경
SQL> alter table emp3
  2  modify (ssn1 varchar2(10));
Table altered.


3. 컬럼 삭제
SQL> alter table emp3
  2  drop column ssn1;
Table altered.



4. 컬럼 사용 안함


SQL> ed
Wrote file afiedt.buf

  1  alter table emp3
  2* set unused column ssn
SQL> /



5. 제약 추가
SQL> alter table emp3
  2  add constraint emp3_uni
  3  unique ( ssn);
Table altered.


6. 제약 체크 연기 

pk 가 걸린 부서 번호를 변경하려고 할경우 department_id 컬럼에 제약 연기를 걸어둔다.

그러면 부서와, 사원의 부서번호를 제약없이  동시에 update 할 수 있다.
제약을 걸때 연기 조건을 건다.
SQL>
  1  alter table dept2
  2  add constraint dept2_id_pk
  3  primary key (department_id)
  4* deferrable initially deferred
SQL> /
Table altered.


작업후 제약을 풀어준다.
SQL> set constraints dept2_id_pk immediate;
Constraint set.


모든 제약을 immediate 로 바꾼다.
SQL> alter session
  2  set constraints = immediate;
Session altered.
 



7. 제약 삭제
SQL> ed
Wrote file afiedt.buf
  1  alter table emp3
  2* drop constraint emp3_uni
SQL> /
Table altered.



8. 제약 사용 불가
SQL> ed
Wrote file afiedt.buf
  1  alter table emp3
  2* disable constraint emp3_uni
SQL> /
Table altered.


9. 제약 다시 사용 가능
SQL> alter table emp3
  2  enable constraint
  3  emp3_uni;
Table altered.