개발학습일지

[MySQL] Foreign Keys 값 설정되어있는 데이터 삭제하기 _on delete cascade 설정 본문

MySQL

[MySQL] Foreign Keys 값 설정되어있는 데이터 삭제하기 _on delete cascade 설정

처카푸 2024. 5. 16. 17:45

Foreign Keys 값 설정되어 있는 데이터 삭제하기

 

데이터 삭제하는데 문제 상황

: Error Code : 1451 로 인해 삭제가 불가능하다

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`yhdb`.`papers`, CONSTRAINT `papers_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`))

error code : 1451

 

 

문제 이유

: 에러코드를 읽어보면, Foreign Keys 값 설정되어 있어서 삭제할 수 없다고 한다.

  그 이유는 데이터를 마구잡이로 삭제하게되면 데이터의 정확성이 떨어지기 때문에,

  데이터의 정확성을 위해서 프로그램이 이렇게 설계된 것이다.

 

 

해결 방법

:  참조하고 있는 데이터도 같이 삭제되도록 설정하면 된다.

   foreign key가 설정되어 있는 테이블 생성창에서

   on delete cascade를 설정해 준다.

foreign keys - on delete cascade

 

문제 해결 완료

: 다시 delete 코드 실행하면 잘 실행되는 것을 확인할 수 있다.

on delete cascade