👉문제 ) STUDENT 테이블에서 s1 수강생을 삭제했을 때 EXAM에 있는 s1수강생의 시험성적과 MANAGER의
managerA가 관리하는 수강생 목록에 자동으로 삭제될 수 있도록 하세요.
- ALTER, DROP, MODIFY, CASCADE 를 사용하여 EXAM, MANAGER 테이블을 수정합니다
답안)
ALTER TABLE EXAM DROP CONSTRAINT exam_fk_student_code;
-> EXAM 테이블의 exam_fk_student_code 컬럼에 관하여 CONSTRAINT(무결성 제약조건) 삭제
ALTER TABLE EXAM ADD CONSTRAINT exam_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code) ON DELETE CASCADE;
-> EXAM 테이블 exam_fk_student_code 컬럼과 STUDENT 테이블의 student_code 과의 FK(외래키) 참조 제약조건을 삭제
** 즉, EXAM테이블이 STUDENT테이블의 student_code 값을 참조하고 있는 FK 참조 조건을 삭제해주는 것
ALTER TABLE MANAGER DROP CONSTRAINT manager_fk_student_code;
-> MANAGER 테이블의 manager_fk_student_code 컬럼 무결성 제약조건 삭제
ALTER TABLE MANAGER ADD CONSTRAINT manager_fk_student_code FOREIGN KEY(student_code) REFERENCES STUDENT(student_code) ON DELETE CASCADE;
-> MANAGER 테이블 manager_fk_student_code 컬럼과 STUDENT테이블의 student_code과의 FK(외래키) 참조 제약조건을 삭제
** 즉, MANAGER 테이블이 STUDENT테이블의 student_code 값을 참조하고 있는 FK 참조 조건을 삭제해주는 것
DELETE FROM STUDENT WHERE student_code = 's1';
-> 비로소 STUDENT테이블에 student_code = 's1'을 삭제 할 수 있음(EXAM, MANAGER테이블에서도 S1이 삭제된다)
@ 추가적으로 제약조건이 궁금하면 보기!!! -> https://dinggur.tistory.com/107
@ 추가적으로 Casecade 궁금하면 보기!!! -> https://papimon.tistory.com/90
'내일배움캠프 > Today I Learned' 카테고리의 다른 글
[내배캠] 스물 여섯번째 회고록 (0) | 2022.12.11 |
---|---|
[내배캠] 나의 스물 다섯번째 회고록 (0) | 2022.12.09 |
[내배캠] 나의 스물세번째 회고록 (0) | 2022.12.07 |
[내배캠] 나의 스물두번째 회고록 (0) | 2022.12.06 |
[내배캠] 나의 스물한번째 회고록 (0) | 2022.12.05 |