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;
(해당 테이블 컬럼명) 과 (부모 테이블의 컬럼명)은 괄호로 묶어줘야 에러가 나지 않는다.