728x90
TRUNCATE TABLE 명령어로 데이터 삭제 하려는데 아래 처럼 오류가 난다..
[에러내용]
" SQL Error [1701] [42000]: Cannot truncate a table referenced in a foreign key constraint (`DB명`.`참조하는테이블`, CONSTRAINT `외래키명` FOREIGN KEY (`외래키`) REFERENCES `DB명`.`테이블명` (`컬럼`)) "
[발생원인]
외래키 제약조건에 따른 에러로 FOREIGN KEY (외래키) 로 참조되고 있는 TABLE의 데이터를 삭제하고자 할때 나는 에러이다
[해결]
데이터 삭제 전에 외래키(Foreign Key) 를 무시하도록 설정 하여 해결
1. 외래키(Foreign Key) 체크 하지 않는다는 설정 진행
SET FOREIGN_KEY_CHECKS = 0;
2. TRUNCATE TABLE 쿼리 실행
TRUNCATE TABLE 테이블명;
3. 외래키(Foreign Key) 체크 설정
SET FOREIGN_KEY_CHECKS = 1;
4. 1 -3 순서대로 실행하면 정상적으로 삭제된 것을 확인할 수 있다
[참고]
MYSQL 5.5.7 부터 외래키(Foreign Key) 설정 된 테이블을 TRUNCATE 하려면 FOREIGN_KEY_CHECKS 변경 후 진행해야 오류가 나지 않는다
728x90
'DBMS > MYSQL' 카테고리의 다른 글
[MYSQL] 계정 동시 접속자 차단 (max_user_connections ) (0) | 2023.04.24 |
---|---|
[MYSQL] Function Definer 변경 (0) | 2023.01.10 |
[MYSQL] DBeaver (디비버) 사용자 계정 생성 추가 및 권한 부여 (0) | 2022.12.02 |
[MYSQL] 사용자 (USER) 계정 권한 설정 (0) | 2022.12.02 |
[MYSQL] DBeaver 데이터베이스(DB) 생성 (0) | 2022.11.02 |