[태그:] 삭제

  • 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