foreign Key 때문에 MySQL Table 삭제 안 될 때

cptkuk91·2022년 6월 2일
2

Algorithm

목록 보기
8/161
post-thumbnail

foreign Key(외래키) 때문에 Table 삭제가 안 될 때가 있다.

Sequelize 사용 시에도 db:migrate:undo:all 입력 시 Error가 발생하는 경우가 있다.

ex) foreign key constraint fails

mysql> drop table users;
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails 

해결방법 1번

users의 foreign Key(외래키)를 찾아 우선 삭제하는 방법이 있다.

foreign Key(외래키)가 몇 개 안 된다면 손쉬운 방법이지만, 만약에 많다면?

해결방법 2번

foreign_key_checks = 0으로 설정해 Table을 삭제하자. Table 삭제 후 foreign_key_checks = 1; 로 돌려놔야 한다.

mysql> SET foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> drop table users;
Query OK, 0 rows affected (0.00 sec)
mysql> SET foreign_key_checks = 1;
Query OK, 0 rows affected (0.00 sec)
profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글