카테고리 없음

[MySQL] Foreign Key의 delete cascade 설정방법과 동작방법

Mei99 2024. 5. 16. 16:28

CASCADE

참조 테이블(부모)의 행을 삭제/수정할 때, 해당 행을 참조하고 있는 테이블(자식)의 관련 행도 자동으로 삭제/수정된다.

이를 통해 데이터의 일관성을 유지할 수 있다.

 

Delete cascade 설정방법과 동작방법

▷ cascade 설정하는 이유

students 테이블 : 참조 테이블(부모)

papers 테이블 : 참조하고 있는 테이블(자식)

 

 

 

두 테이블이 foreign key로 묶여있을 때,

stdents 테이블의 id를 삭제하면 'Cannot delete .....' 삭제할 수 없다는 오류가 발생한다.

 

(papers 테이블에서는 row 삭제 가능,

 papers 테이블(자식)에서 먼저 삭제 후 stdents 테이블(부모)에서 데이터 삭제하는 것은 가능) 

 

 

이럴 경우에 cascade 설정을 해줘야 한다.

 

 

cascade 설정 방법

테이블 Foreign Key 탭에서 On Delete > CASCADE 설정

sudents 테이블(부모) 데이터를 삭제하면, papers 테이블(자식)의 데이터도 함께 삭제할 수 있다.