CoDream

FOREIGN KEY(외래 키) 제약조건 - 삭제룰 본문

[DB]Oracle SQL/Oracle SQL 오류

FOREIGN KEY(외래 키) 제약조건 - 삭제룰

코잠 2024. 3. 25. 16:27
728x90
반응형

FOREIGN KEY(외래 키) 

- 제약조건
- 삭제룰

 
MEMBER타입의 테이블을 생성해놓은 상태.
 > WRITER - MEMBER타입
 > WRITER  3번을 가져오려했는데 오류남.

 
오류 이유? 부모 키가 없기 때문에.
 
ON DELETE RESTRICT : 자식 테이블의 참조 키가 부모 테이블의 키 값을 참조하는 경우 부모 테이블의 행을 삭제할 수 없다.

 


 
그래서 MEMBER테이블3번테이터 (부모키)를 만들어줌.

 
 
BORAD 테이블에서 WRITER에 3번 데이터를 가져오고 게시글 작성함.


 
이제 부모테이블인 멤버테이블 3번 삭제하려고 했더니 오류남.
 
? 자식레코드가 있기 때문

 


ON DELETE SET NULL  : 부모 테이블의 데이터가 삭제 시 참조하고 있는 자식 테이블의 컬럼 값이 NULL로 변경된다.
ON DELETE CASCADE  : 부모 테이블의 데이터가 삭제 시 참조하고 있느 자식 테이블의 컴럼 값이 존재하는 행 전체가 삭제된다.
 
위 방법 중 ON DELETE CASCADE  선택해서 처리함.

> 수정결과
부모 테이블의 데이터를 삭제하면
자식 테이블의 컬럼값이 모두 삭제되었음.

728x90
반응형