본문 바로가기

데이터베이스/RDBMS

외래 키 지정했을 때 삭제하는 방법

예시)

students 테이블
papers 테이블

papers 테이블의 student_id는 students 테이블의 id를 참조하고 있다

 

이 상태에서 students 테이블의 id가 4인 학생 데이터를 삭제하면,

에러가 난다!

그 이유는 삭제를 하려면 외래키가 가리키는 거 먼저 삭제하고 본 테이블에 있는거를 삭제해야되기 때문이다.

따라서 papers 테이블의 student_id가 4인 데이터를 먼저 삭제해야 students 테이블의 id가 4인 데이터를 삭제할 수 있다.

위의 과정이 복잡하다면,

papers 테이블의 Foreign Keys에서 On Delete를 CASCADE로 바꾸면 외래키가 가리키고 있는걸 삭제하지않아도 자동으로 가리키는 것과 본 테이블의 데이터도 삭제된다.

▶참고로 이 옵션은 회사마다 다르다.