본문 바로가기
Error & Fix

MySQL Drop Table 안되는 현상 해결방법

by wakestand 2022. 7. 11.
반응형
SQL Error [3730] [HY000]: Cannot drop table 'company' referenced by a foreign key constraint 'Employee_FK' on table 'employee'.

 

MySQL에서 drop table 테이블명으로

테이블 삭제 시 다른 테이블에 FK가 걸려있다고

삭제가 되지 않는 경우가 있는데

두 가지 방법으로 해결해주면 된다

 

1. 참조하는 테이블 삭제

위 예제에서 drop 하려는 Company 테이블은

Employee 테이블의 PK를 가져와서 FK로 사용하는데

참조하는 테이블인 Employee 테이블을 삭제한 후

Company 테이블을 삭제해주면 된다

 

2. SET foreign_key_checks = 0; 사용

위 명령어를 사용해주면

테이블 삭제 시 FK를 체크하지 않게 되는데

당연히 삭제 시 테이블간의 관계가 깨지기 때문에

참조하는 테이블 간의 데이터가 맞지 않을 수 있다

 

하지만 테이블에 중요한 데이터가 들어있지 않거나

혹은 테스트용 데이터의 경우에는

이렇게 사용해도 딱히 상관이 없으므로

 

SET foreign_key_checks = 0;

를 사용해서 FK를 체크하지 않고

테이블을 삭제해준 후

 

SET foreign_key_checks = 1;

를 사용해서

다시 FK를 체크하게 변경해주면 된다

반응형

댓글