mysql 쿼리문에 대해서 질문드립니다. 채택완료
ㄷㅊㅎ
7년 전
조회 2,009
현재 테이블의 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개
답변을 작성하려면 로그인이 필요합니다.
로그인