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
이렇게 만들고자 합니다.
쿼리문을 잘아는게 아니라서 대충 생각나는데로 아래와 같이 적었습니다.
</p>
<p> // 빈 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);</p>
<p> </p>
<p> $count++;
}</p>
<p> alter table [테이블 명] auto_increment={$count+1};</p>
<p>
근데 위에처럼 하면 나중에 행이 몇천개 이렇게되면 쿼리를 몇천번이나 돌리게 되니까 답이없더라고요
좀더 좋은방법이 없을까요? ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
7년 전
id 값이 오토인크리먼트 라면요
신경을 쓰지 않아도됩니다.
그냥 자동 증가값이고 지워지면 비는것이고
거기에 연연하여 그 숫자를 맞춘다고 불필요한 쿼리를 실행하면서
억지로 안맞춰도됩니다.
일반 적인 게시판이나 회원테이블등 대부분 오토인크리먼트 값은
따로 맞추거나 하지않습니다
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택