ETC
[mysql] foreign key가 존재하는 table을 truncate/delete할때 constraint 에러 문제 해결하기
lim
2020. 9. 12. 16:13
반응형
문제상황
truncate 테이블명;
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`DB명`.`참조하는 테이블`, CONSTRAINT `test` FOREIGN KEY (`외래키`) REFERENCES `DB명`.`테이블명` (`컬럼`))
외래키가 존재하는 테이블을 삭제할때는 위와 같은 에러메시지가 발생한다.
어떻게든 내용을 지워야 할 경우에는 아래와 같이 외래키(Foreign key) 체크를 하지 않는다는 설정을 해주고 다시 원복을 해주는 방식으로 지울 수 있다.
해결방법
> set FOREIGN_KEY_CHECKS = 0;
Query OK, 0 rows affected (0.000 sec)
> truncate 테이블명;
Query OK, 0 rows affected (0.351 sec)
> set FOREIGN_KEY_CHECKS = 1;
Query OK, 0 rows affected (0.000 sec)
그러면 테이블의 내용이 모두 삭제된 것을 확인할 수 있다.
반응형