티스토리 뷰

mariadb에서 truncate table 명령어를 사용해 테이블을 삭제하려고 할때 아래와 같은 오류 메시지가 발생하였다.

Cannot truncate a table referenced in a foreign key constraint (`bicycle`.`tb_contact_answer_log`, CONSTRAINT `fk_cal_to_c` FOREIGN KEY (`contact_idx`) REFERENCES `bicycle`.`tb_contact` (`contact_idx`))

위와 같은 오류를 해결하려면 truncate table 명령어 전에 foreign_key_checks 설정값을 변경하여 테이블의 데이터를 제거할 수 있다.

아래는 사용 예제 이다.

set foreign_key_checks = 0;
truncate table tb_contact_answer_log;
set foreign_key_checks = 1;

foreign_key_checks 는 InnoDB 테이블의 외래 키 제약 조건을 검사할지 여부를 지정한다.

또한 위 방법을 이용하면 무결성 검사 없이 입력을 할 수 있다.

아래는 무결성 검사를 무시하고 데이터를 입력하는 예제이다.

SET FOREIGN_KEY_CHECKS = 0;
insert into tb_contact_answer_log (contact_idx, manager_idx, touch_dt) values (1, 2, now());
SET FOREIGN_KEY_CHECKS = 1;


댓글
댓글쓰기 폼