2011-12-16 2 views
1

약 30 행의 테이블이 있습니다. 제 3 행에 특별히 새로운 행을 삽입해야합니다. 수동으로 'id'값을 주려고했는데 자동 증가가 나머지를 처리하기를 바라지 만 기본 키에 대해 '중복 항목'오류가 발생했습니다.새로운 행을 MySQL의 특정 위치에 삽입하십시오.

이 문제가 발생합니까? 그것은 일회성 수정이므로 '유연한'솔루션이나 다른 것이 필요 없습니다.

감사합니다.

답변

4

당신이 ID를 가지는 행 = 3 삽입하기 전에이 업데이트를 실행 : 당신은 모든 레코드를 삭제하고 당신이 그들을 원하는 순서대로 다시 삽입 할 수

update your_table set id=id+1 where id >= 3; 
+0

작은 사양을 추가하고 싶습니다. ID 필드가 PRIMARY KEY이면 명령과 함께 오류 메시지 (중복 항목)가 표시됩니다. 그러나 레코드가 처리되는 순서 (ID 값이 ID 값보다 작은 값보다 작은 순서)를 변경하면 명령이 실패하지 않습니다. UPDATE your_table SET id = id + 1 여기서 id> 3 ORDER BY DESC가 더 좋습니다. – rfellons

0

을, 그러나 그것은 반드시 당신이 돌아갑니다 의미하지 않는다 올바른 순서로.

결과가 특정 순서로 필요한 경우 SQL에서 order by 절을 사용하십시오.

왜 특정 순서로 테이블에 레코드를 배치해야합니까?

관련 문제