DB

제약조건

스물훈 2020. 5. 11. 17:31

제약조건 이름

- 제약조건 이름을 설정하지 않고 제약조건을 만들면 오라클은 sys로 시작하는 번호를

   이용해서 제약조건 이름을 설정

- 제약조건은 user_constraints 테이블에 존재

- 제약조건을 만들 때 이름을 부여할 수 있는데 이 때는 제약조건 앞에 constratin 제약조건 이름을 추가하면 됨.

- 기본키에는 Pk 외래키는 fk 유일성은 ul not null은 nn체크 제약조건은 ck를 붙이는 것이 개발자들의 관습

 

테이블 레벨 제약조건

- 행을 만들때 제약조건을 설정하지 않고 행을 전부 선언하고 마지막에서 제약조건을 설정하는 것

- [constraint 제약조건이름] 제약조건종류 (컬럼이름)

테이블 레벨 제약조건

- not null은 테이블 레벨 제약조건으로 사용할 수 없음

- 기본키는 제약조건 종류를 primary key, 유일성은 unique, check는 동일하고 외래키는

  Foreign key(열 이름) References 테이블(참조할 열 이름)으로 설정함.

- 기본키를 2개 이상의 열로 만들 때는 반드시 테이블 레벨 제약조건으로 만들어야 함.

 

 

 

제약조건 갱신

1) 제약조건 추가

alter table 테이블명

add [constraint 제약조건이름] 제약조건종류(컬럼이름);

 

2) 제약조건 변경 - not null은 제약조건 추가가 아니고 변경

alter table 테이블명

modify 열이름 [constraint 제약조건이름] 제약조건종류;

not null 제약조건

 

3) 제약조건 삭제 

alter table 테이블명

drop constraint 제약조건이름;

 

제약조건 활성화&비활성화

1) 제약조건을 일시적으로 비활성화: 샘플링 입력이나 테스트할 때 주로 이용

alter table 테이블명

disable constraint 제약조건이름;

 

2) 제약조건을 활성화

alter table 테이블명

enable constraint 제약조건이름;