반응형
Error 1701
truncate 테이블명;
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`DB명`.`참조하는 테이블`, CONSTRAINT `foreign key name` FOREIGN KEY (`외래키`) REFERENCES `DB명`.`테이블명` (`컬럼`))
FK Constraint 외래 키 제약 조건에 따른 에러로써
foreign key (외래키)로 참조되고 있는table을 truncate/delete할 때 (데이터가 없더라도) 나는 에러
해결방안을 사용할 경우 무결성이 위배될 가능성이 있다.
해결 방안 1
truncate 또는 delete 실행전에 foreign key를 무시하도록 설정 후 작업 (끝나고 꼭 다시 외래키 체크 바꿔줘야함)
-- 외래키 체크 False
set FOREIGN_KEY_CHECKS = 0;
-- 작업
truncate 테이블명;
delete from 테이블명;
-- 외래키 체크 True
set FOREIGN_KEY_CHECKS = 1;
해결방안 2
Remove constraints 외래 키 제약 삭제
-- Cannot truncate a table referenced in a foreign key constraint
-- (`DB명`.`참조하는 테이블`, CONSTRAINT `외래키 이름`
-- FOREIGN KEY (`외래키`) REFERENCES `DB명`.`테이블명` (`컬럼`))
ALTER TABLE `참조하는 테이블`
DROP FOREIGN KEY `외래키 이름`;
https://stackoverflow.com/questions/5452760/how-to-truncate-a-foreign-key-constrained-table
반응형
'DB(SQL)' 카테고리의 다른 글
[DB] view (view/MView/snapshot) (0) | 2021.10.06 |
---|---|
[DB] 문자열 연결 / 이어붙이기 (0) | 2021.09.17 |
[DB] 테이블 구성시 참고 (0) | 2021.08.20 |
[DB] index (0) | 2021.08.19 |
[DB] DB Replication (DB 복제)(Maria DB) (0) | 2021.08.10 |