2012-03-28 2 views
29

그래서 나는 몇 테이블에서 일하고 있는데 그들 사이의 데이터 불일치가있다 ... 하나 또는 두 개의 테이블은 외래 키 제약 조건이 특정 테이블 (X 테이블)에있다. 이 테이블에는 외래 키 열이있는 여러 행이 있습니다.MySQL : 외래 키 제약 조건을 무시하고 행을 삭제

테이블 X에서 중복 된 행을 제거하지만 외래 키 제약 조건으로 인해이 작업을 수행하지 못하게하려고합니다. 내가 뭘하는지 알기 때문에 외래 키 제약 조건을 무시하면서 강제로 행을 삭제할 수 있습니까? 외래 키를 확인에서 MySQL을 방지 할 수

+1

당신이 엉망 당신의 DB를 SET의 FOREIGN_KEY_CHECKS = 0을 사용하는 동안 나올 수에 영향을 원한다면 다음 나중에 추가 할 수 있습니다 결과가 정확히 무엇인지 알 경우에만 사용하십시오. 내 PHP 백업 스크립트에만 사용합니다. – DevWL

+0

물론 그렇게하면 위험 할 수 있습니다. 나는 내가하는 일을 정확히 알고있을 때만 사용하게 될 것입니다. –

답변

88

SET foreign_key_checks = 0

. 완료되면 다시 1로 설정하십시오. 또한

, 당신은 항상 외부 키를 삭제하고 당신은 단지 단일 키

ALTER TABLE t DROP FOREIGN KEY fk

+0

고마워, 편리하다. –

+2

세션에서 즉시 로그 아웃하면 외래 키 검사를 다시 1로 설정할 필요가 없다고 생각한다. – dewd

+0

나는이 테이블을 모든 테이블에서 삭제할 수 있도록 여러 테이블을 가지고 있으므로 어떻게 할 수 있습니까? 이것은 작동하지 않습니다. – karan

관련 문제