mysql 중복 데이터 삭제

매번 인터넷에서 찾다쓰다, 귀찮아 나중에 한번에 쓰기 위해 기록한다.

아래 사이트를 참조했다.

지운 후, rollback
https://stackoverflow.com/questions/11011384/how-to-test-an-sql-update-statement-before-running-it

inner join
http://rapapa.net/?p=311

중복 데이터 찾기
http://ra2kstar.tistory.com/26

사진을 database에 추가하면, 가끔? 중복 데이터가 생긴다.어디가 문제인지 모르겠으나, 중복되는 경로를 지우고 싶다.

myphpadmin으로 임시 테이블을 작성하면 세션이 끝나면서 죽어버려 사용할 수 없다. 터미널로 연결하여 사용했다.

#임시 테이블 작성..
CREATE TEMPORARY TABLE if not EXISTS `toDelete` AS SELECT *, count(*) as `counter` from `picture` GROUP by `경로` HAVING `counter` >='2';

#inner join으로 id중복되는 id를 찾음.
select `picture`.* from `picture` inner join `toDelete` on `picture`.`id` = `toDelete`.`id` limit 10;

#백업 시작..
start transaction;

#삭제.
delete `picture`.* from `picture` inner join `toDelete` on `picture`.`id` = `toDelete`.`id`;

#확인 후,
commit

#rollback

 

코멘트

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.