mysql 쿼리문에 대해서 질문드립니다.

mysql 쿼리문에 대해서 질문드립니다.

QA

mysql 쿼리문에 대해서 질문드립니다.

본문

현재 테이블의 id컬럼을 AUTO_INCREMENT로 증가시키고 있습니다.

그런데 만약에 중간에 id값이 3인 행을 제거했다고 하면

id값이  1 2 - 4 5 6 7 8 9 10 이렇게 중간에 숫자가 비는데

이걸 다시 정렬해서

1 2 3 4 5 6 7 8 9

이렇게 만들고자 합니다.

 

쿼리문을 잘아는게 아니라서 대충 생각나는데로 아래와 같이 적었습니다.

 


 // 빈 id값 정리
    $result = sql_query(" SELECT id FROM [테이블명] WHERE 1 ORDER BY id asc");
    $count=0; // 전체행 카운트
    for($i=0; $row = sql_fetch_array($result); $i++) {
        $sql = " update [테이블명] set id = {$i+1} where {$row['id']}";
        sql_query($sql);
 
        $count++;
    }
    alter table [테이블 명] auto_increment={$count+1};

 

근데 위에처럼 하면 나중에 행이 몇천개 이렇게되면 쿼리를 몇천번이나 돌리게 되니까 답이없더라고요

좀더 좋은방법이 없을까요? ㅠㅠ

이 질문에 댓글 쓰기 :

답변 1

id 값이 오토인크리먼트 라면요

신경을 쓰지 않아도됩니다.

그냥 자동 증가값이고 지워지면 비는것이고

거기에 연연하여 그 숫자를 맞춘다고 불필요한 쿼리를 실행하면서

억지로 안맞춰도됩니다.

일반 적인 게시판이나 회원테이블등 대부분 오토인크리먼트 값은

따로 맞추거나 하지않습니다

 

답변을 작성하시기 전에 로그인 해주세요.
전체 425
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT