squelize-cli
를 사용해 user-test
라는 테이블을 만들고 테스트가 완료된후 user
테이블로 테스트한 부분만 옮기고 user-test
를 삭제하려 했더니.... 아래와같은 에러가 발생하였다...!!!!
그래서 구글에 검색해보니..
foreign key
가 걸린 테이블을 쿼리로 직접 삭제할 때는 예외가 걸린다. 테이블 삭제 시, foreign key
로 관계가 설정된 테이블이 존재하지 않는 테이블을 참조하게 되는 (불안정한) 이상 상태가 되어 DBMS에서 사전에 방지를 해주는 것인데, (ORM의 cascade 지정 등으로 삭제가 되기도 한다.) 이를 무시하고 강제로 삭제
를 하려면 아래와 같이,
1. foreign key
체크 설정을 비활성화
하고
2. 테이블을 삭제
시킨다.
3. 테이블 삭제 후 다시 foreign key 체크를 활성화
하여 안전성
을 지켜주면 된다.
mysql> SET foreign_key_checks = 0;
mysql> drop table TABLENAME
mysql> SET foreign_key_checks = 1;