미분류글

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 <자식테이블>"을 수행하면 제약조건을 확인 가능하다.

더보기
여기 들어가서

 

Text 탭에서 확인 가능

└> 또는 truncate <부모테이블> 실행시 나타나는 에러메세지를 확인한다.

 

- 지워주기

아래 명령어를 통해 FK 제약조건을 먼저 drop해준다.

alter table <자식테이블> drop foreign key FKb4wu72kh4qtquyi3c3wb85085;

❗모든 자식테이블에서 부모테이블(FK) 참조를 삭제해줘야 한다.

 

 

 

step2) 이제 부모테이블을 truncate할 수 있다.

truncate table <부모테이블>;

 

성공!

 

 


 

반응형