2011년 12월 4일 일요일

[Oracle] 무결성 제약 조건

* 무결성 제약 조건
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK


* 제약 조건 확인하기 위한 데이터 딕셔너리 : uesr_constraints


* 제약 조건 명 지정하여 컬럼 레벨 정의 방법 - CONSTRAINT 키워드
Ex) CREATE TABLE dept
                                                           [테이블명]_[컬럼명]_[제약 조건 유형]
      (deptno NUMBER(2) CONSTRAINT dep_deptno_pk PRIMARY KEY);


* NOT NULL
테이블 레벨 정의 불가능, 컬럼 레벨 정의만 가능
테이블 생성 후 NOT NULL 제약 조건을 추가할 때 - ADD 대신 MODIFY
Ex) ALTER TABLE table_name
      MODIFY column_name CONSTRAINT 테이블명_컬럼명_nn NOT NULL


* Foreign Key와 Primary Key
둘 사이의 연관 관계 때문에 Foreign Key의 Reference가 되는 키는 삭제할 수 없다.
삭제를 원할 때는 CASCADE 사용 - Primary key를 삭제하면 자동으로 Foreign Key도 삭제
But, 삭제를 하기 보다 비활성화를 하자. Disable/Enable
       (이것 또한 Primary key를 비활성화 시키기 위해 CASCADE 사용)

댓글 없음:

댓글 쓰기