DB 공부/MySQL

[MySQL] On Delete Cascade

Leezu_ 2021. 4. 8. 20:22

on delete cascade

  회원 탈퇴 기능으로 Mapper를 작성하는 도중에, 부모테이블(ex. 유저 테이블) 삭제시, 자식테이블(ex. 댓글, 좋아요 등)의 데이터 값도 동시에 삭제할 수 있을까? 라는 생각으로 찾아보다 알게된 함수로 부모 테이블의 데이터를 삭제할 때, 참조된 자식 테이블의 데이터도 자동으로 삭제

 

사용 예시

 

1. 기존에 생성했던 제약조건명을 다음 명령어로 확인

select * from information_schema.table_constraints;

 

2. 해당 테이블에서 수정하기를 희망하는 제약조건명을 삭제후,

alter table (서버명).(테이블명) drop foreign key (제약조건명);

 

3. on delete cascade를 추가하여 새로운 제약조건을 생성

alter table (서버명).(테이블명) add foreign key (해당 테이블 컬럼명) references (서버명).(부모테이블명) (부모 테이블의 컬럼명) on delete cascade;

 

(해당 테이블 컬럼명) 과 (부모 테이블의 컬럼명)은 괄호로 묶어줘야 에러가 나지 않는다.