제약 조건 비활성화 - 부모테이블의 데이터 삭제방법, 제약 조건 비활성화/활성화, CASCADE 옵션
CODEDRAGON ㆍDevelopment/Database
반응형
참조무결성 제약
자식테이블인 사원테이블(emp)은 부모테이블인 부서테이블(dept)의 기본키인 부서번호를 참조하고 있습니다.
부서 테이블에서 10번 부서정보는 사원테이블에 10번 부서에 근무하는 사원이 존재하므로 부서 번호 10번은 부서테이블에서 삭제할 수 없습니다.
부모테이블의 정보를 삭제하게 되면 자식 테이블에서 자신이 참조하고 있는 부모테이블의 정보를 읽어버리게 되기 때문입니다.
부모테이블의 데이터 삭제방법
- 자식테이블에서 참조하는 있는 정보를 먼저 삭제한 후 부모테이블의 해당 정보를 삭제합니다.
- 참조 무결성 때문에 삭제가 불가능하므로 자식테이블의 외래키 제약조건을 제거한 후에 부모테이블의 정보를 삭제합니다.
제약 조건 비활성화/활성화
- 테이블에서 제약조건을 삭제하지 않고도 일시적으로 적용시키지 않게 하는 방법
- 오라클은 작업상황에 따라 다음 명령어를 통해 제약 조건을 비활성화 시키거나 다시 활성화 시킬 수 있습니다.
DISABLE CONSTRAINT | 제약 조건을 일시적으로 비활성화 시킵니다. |
ENABLE CONSTRAINT | 비활성화된 제약조건을 해제하여 다시 활성화시킵니다. |
제약 조건 비활성화/활성화 형식
ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명; |
CASCADE 옵션
- 부모 테이블과 자식 테이블 간의 참조 설정이 되어 있을 때, 부모 테이블의 제약 조건을 비활성화하면, 이를 참조하고 있는 자식 테이블의 제약 조건까지 함께 비활성화시켜 주는 옵션
- 제약 조건의 삭제에도 활용되는 옵션으로 테이블의 제약조건을 삭제하면 이를 참조하고 있는 자식 테이블의 제약조건도 같이 삭제해 줍니다.
'Development > Database' 카테고리의 다른 글
DEFAULT 제약 조건 (0) | 2016.11.25 |
---|---|
Top-N - 테이블의 구조를 생성하면 제공되는 컬럼 (0) | 2016.11.25 |
WITH CHECK OPTION / WITH READ ONLY 옵션 (0) | 2016.11.25 |
FOREIGN KEY 제약 조건 - 참조 무결성, 주종관계 표, 외래키 참조 도식도 (0) | 2016.11.25 |
DEFAULT 제약 조건 (0) | 2016.11.25 |