2012-03-01 3 views
0

중복 레코드를 찾아서 삭제하는 데 문제가 있습니다. CallDetailRecordID 레코드를 스캔하고 삭제해야하는 ID가있는 테이블이 있습니다. 중복 된 레코드가있는 이유는 데이터를 특수 아키 닝 엔진으로 내보내는 중 인덱싱이 지원되지 않습니다.mysql 테이블에서 중복 레코드를 삭제하는 방법

"Select DISTINCT"을 사용해 보았지만 작동하지 않습니다. 다른 방법이 있습니까? 나는 상점 프로 시저를 생성하고 정리를 수행하기 위해 매주 실행하도록하고 싶습니다.

귀하의 도움에 감사드립니다.

당신이 원하는 경우에 당신이

+0

왜 DISTINCT가 작동하지 않습니까? –

답변

3
CREATE TABLE tmp_table LIKE table  
INSERT INTO tmp_table (SELECT * FROM table GROUP BY CallDetailRecordID) 
RENAME table TO old_table 
RENAME tmp_table to table 

손실 삽입을 방지하기 위해 시작 부분에 LOCK TABLES 문을 추가, 기존 테이블을 삭제 감사합니다.

관련 문제