반응형
SQL Error [1451] [23000]: (conn=10) Cannot delete or update a parent row: a foreign key constraint fails
MySQL에서 테이블에서
delete나 update를 할 수 없는 경우
위와 같은 에러가 발생하게 되는데
내용을 보면 참조하는 테이블(FK) 때문에
해당 테이블의 Row를
삭제하거나 변경할 수 없다는 얘기인데
두 가지 방법으로 해결이 가능하다
1. 참조하는 테이블 삭제 혹은 변경
FK로 참조하는 테이블을 삭제하거나
혹은 FK로 참조하는 Row를 삭제해준 후
에러가 발생했던 Row를 다시
삭제, 변경시켜주면 된다
2. SET foreign_key_checks = 0; 사용
위 명령어로
외래키를 참조하지 않게 만들 수 있는데
명령어를 사용한 후
에러가 발생했던 쿼리를 다시 사용해주면
FK로 설정해도 제약조건에 걸리는 일 없이
삭제나 수정이 가능해지게 된다
다만 FK 제약조건을 일시적으로 해제하기 때문에
데이터가 맞지 않게 변경될수도 있는데
로컬이나 테스트 서버에서 테스트 시에는
데이터 자체가 중요하지 않기 때문에
SET foreign_key_checks = 0;
를 사용해준 후
delete, update 쿼리를 사용하고
이후
SET foreign_key_checks = 1;
를 사용해서 원래대로 돌려주면 된다
반응형
'Error & Fix' 카테고리의 다른 글
JPA Repository 호출 시 NullPointerException 해결방법 (1) | 2022.07.24 |
---|---|
JPA No Property 메소드명 found 에러 해결방법 (0) | 2022.07.12 |
MySQL Drop Table 안되는 현상 해결방법 (0) | 2022.07.11 |
이클립스 The import java.util cannot be resolved 에러 해결방법 (0) | 2022.07.11 |
자바 Unreachable Code 에러 해결방법 (0) | 2022.05.22 |
댓글