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
users의 foreign Key(외래키)를 찾아 우선 삭제하는 방법이 있다.
foreign Key(외래키)가 몇 개 안 된다면 손쉬운 방법이지만, 만약에 많다면?
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)