2011-12-16 3 views
12

관계 제약이있는 테이블이 여러 개 있습니다. 테이블에 더미 데이터가 가득 찼습니다. 구조를 유지하면서 테이블의 데이터를 잘라내거나 비우고 싶습니다.제약 조건을 일시적으로 사용 중지합니다.

매번 테이블을 비우려면 외래 키 제약 조건 오류가 발생합니다. 제약 조건을 일시적으로 사용하지 않도록 설정 한 다음 더미 데이터가 삭제되면 다시 설정할 수 있습니다.

이 솔루션을 시도했지만 작동하지 않았습니다! 내가 해제되면, 그때는 MySQL을 사용하고있어 ... 내가 FK 제약 조건 오류, 잘라야

//disable 
SET FOREIGN_KEY_CHECKS = 0; 


//enable 
SET FOREIGN_KEY_CHECKS = 1; 

을 시도합니다.

아이디어가 있으십니까?

답변

7

truncate을 사용하려면 기록 된 작업을 자르지 말고 FK를 제거해야합니다.

FK와 함께 delete을 사용할 수 있지만 삭제 된 로그 작업은 오래 걸립니다.

+0

좋은 지적. 나는 그걸 몰랐다 .... – user311509

3

끝 부분 (FK 만있는 테이블)에서 시작하고 다른 이야기에서는 참조하지 않습니다. 자를 수 있습니다. 그런 다음 일을하고 삭제하십시오. 적절한 순서로 잘라내거나 삭제하면 제약 조건을 위반하지 않습니다. 아니면 모든 고통을 버릴 수도 있습니다. 테이블을 자릅니다. 그런 다음 구속을 다시 넣으십시오.

관련 문제