미분류글
Join 테이블 전략 (상속관계매핑) 상태에서 부모테이블 truncate하기
히어로맛쿠키
2023. 1. 27. 18:17
문제상황
⭐ 쿼리:
truncate table <부모테이블>;
⭐ 에러:
17:47:53 truncate table <부모테이블>
Error Code: 1701. Cannot truncate a table referenced in a foreign key constraint (`<스키마명>`.`<자식테이블>`, CONSTRAINT `FKb4wu72kh4qtquyi3c3wb85085`) 0.000 sec
이 부모테이블이 자식테이블에서 FK로 참조되고있기 때문에 truncate이 안되는 것이다.
자식테이블로 가서 FK 제약조건을 삭제해줘야 한다.
해결방법
⭐ 간단히 제약조건을 확인해서 지운 후에 부모테이블을 truncate하면 된다.
step1) 모든 자식테이블에 걸린 제약조건 확인해서 지워주기
- 제약조건 확인하기
└> "show create table <자식테이블>"을 수행하면 제약조건을 확인 가능하다.
└> 또는 truncate <부모테이블> 실행시 나타나는 에러메세지를 확인한다.
- 지워주기
아래 명령어를 통해 FK 제약조건을 먼저 drop해준다.
alter table <자식테이블> drop foreign key FKb4wu72kh4qtquyi3c3wb85085;
❗모든 자식테이블에서 부모테이블(FK) 참조를 삭제해줘야 한다.
step2) 이제 부모테이블을 truncate할 수 있다.
truncate table <부모테이블>;
반응형