에러
[MySQL Error 1701] 외래키 설정이 되어 있는 테이블 데이터가 삭제가 안 되네?
눌지
2024. 5. 31. 13:13
에러 배경
orders의 데이터를 TRUNCATE sql을 사용해 데이터를 삭제하려는 상황에서 발생했다.
에러 그 잡채
TRUNCATE orders
Error Code: 1701.
Cannot truncate a table referenced in a foreign key constraint
(`BookShop`.`orderedBook`, CONSTRAINT `FK_orderedBook_orders_id`
FOREIGN KEY (`order_id`) REFERENCES `BookShop`.`orders` (`id`))
외래키 설정으로 인해 TRUNCATE 할 수 없다는 에러 메시지가 발생한 상황이다.
해결 과정
해결. 외래키 설정 OFF하고 삭제 후 다시 ON
// 외래키 설정 OFF
SET FOREIGN_KEY_CHECKS = 0;
// 원하는 테이블 데이터 삭제
// 외래키 설정 ON
SET FOREIGN_KEY_CHECKS = 1;
정리
간단한 테이블의 초기화이기에 가능했던 꼼수(?)인 느낌이 든다. 관련된 테이블이 많은 경우 어디서 또 문제가 발생할지 모르기 때문에 설정을 건드리는 부분은 조심해야 할 필요가 있을 것 같다.