안녕하세요 길벗수험서 운영팀입니다.
DROP문의 cascade 옵션으로 테이블을 삭제하더라도 참조 관계에 있는 테이블이 통채로 제거되는 경우는 흔치 않습니다.
A테이블의 a 기본키를 B테이블의 b 외래키가 참조하고 있다면,
B테이블을 삭제하는 것은 아무 문제 없습니다. A테이블에 어떤 영향도 주지 않죠.
A테이블을 삭제하려면 참조 중이라면서 오류가 발생합니다. 이때 cascade 옵션을 사용할 수 있죠.
3가지 결과가 나타날 수 있습니다.
1. b 에서 a 에 해당하는 데이터들만 제거됩니다. 참조무결성이 준수되던 상태라면 데이터만 모두 삭제되고 속성은 남게되겠죠.
2. b 속성 자체가 날라갑니다. 테이블 구조에서 속성이 하나 제거되는 셈이죠.
3. B테이블이 제거됩니다. <- 이게 거의 없는 경우에 해당하며, 몇몇 DBMS에서 옵션으로 제공하지만 사용하지 않을 것을 권장합니다.
행복한 하루되세요 :)
-
관리자2021-03-03 16:30:22
안녕하세요 길벗수험서 운영팀입니다.
DROP문의 cascade 옵션으로 테이블을 삭제하더라도 참조 관계에 있는 테이블이 통채로 제거되는 경우는 흔치 않습니다.
A테이블의 a 기본키를 B테이블의 b 외래키가 참조하고 있다면,
B테이블을 삭제하는 것은 아무 문제 없습니다. A테이블에 어떤 영향도 주지 않죠.
A테이블을 삭제하려면 참조 중이라면서 오류가 발생합니다. 이때 cascade 옵션을 사용할 수 있죠.
3가지 결과가 나타날 수 있습니다.
1. b 에서 a 에 해당하는 데이터들만 제거됩니다. 참조무결성이 준수되던 상태라면 데이터만 모두 삭제되고 속성은 남게되겠죠.
2. b 속성 자체가 날라갑니다. 테이블 구조에서 속성이 하나 제거되는 셈이죠.
3. B테이블이 제거됩니다. <- 이게 거의 없는 경우에 해당하며, 몇몇 DBMS에서 옵션으로 제공하지만 사용하지 않을 것을 권장합니다.
행복한 하루되세요 :)