본문 바로가기

프로젝트

[서점 프로젝트] SQL Error [1701] 해결하기

주문 API가 배송 정보 입력, 주문 상품 입력 등을 하나의 트랜잭션으로 처리하지 않아,
중간에 주문이 실패해도 데이터의 일관성이 유지되지 않았습니다.

올바른 테스트를 위해 데이터베이스의 데이터를 수동으로 삭제하던 중 다음과 같은 에러를 만났습니다.

1701 에러


❗ 원인

메시지에서 외래키 제약 조건에서 참조된 테이블을 TRUCATE 할 수 없다고 안내하고 있습니다.

 

❗ 해결 방법

TRUNCATE를 할 때 외래키 제약 조건을 해제하는 방법으로 문제를 해결할 수 있습니다.

-- 외래키 비활성화
SET FOREING_KEY_CHECKS = 0;

-- 삭제 명령
TRUNCATE order_item

-- 외래키 활성화
SET FOREIGN_KEY_CHECKS = 1;

반드시 외래키 제약 조건을 다시 활성화하는 것을 잊지 말아야 합니다.
비슷한 문제를 겪으신 분께 이 글이 도움이 되었으면 좋겠습니다.

글을 끝까지 읽어주셔서 감사합니다!
틀린 내용은 댓글로 지적 부탁드립니다.