[mysql] MySQL에서 AUTO_INCREMENT를 재설정하는 방법은 무엇입니까?

필드를 재설정 하려면 어떻게 AUTO_INCREMENT해야합니까? 다시
계산하기를 원합니다 1.



답변

다음을 사용하여 카운터를 재설정 할 수 있습니다.

ALTER TABLE tablename AUTO_INCREMENT = 1

InnoDB의 경우 auto_increment값을 최고 현재 인덱스보다 작거나 같게 설정할 수 없습니다 . ( ViralPatel 에서 인용 ) :

카운터를 이미 사용한 값보다 작거나 같은 값으로 재설정 할 수 없습니다. MyISAM의 경우, 값이 AUTO_INCREMENT 열에 현재있는 최대 값보다 작거나 같으면 현재 최대 값에 1을 더한 값으로 재설정됩니다. InnoDB의 경우, 값이 열의 현재 최대 값보다 작 으면 오류가 발생하지 않으며 현재 시퀀스 값이 변경되지 않습니다.

다른 테이블의 MAX 값을 사용하여 MySQL 자동 증분을 재설정하는 방법을 참조하십시오 . 허용 가능한 값을 동적으로 얻는 방법에 대해


답변

ALTER TABLE tablename AUTO_INCREMENT = 1


답변

SET  @num := 0;

UPDATE your_table SET id = @num := (@num+1);

ALTER TABLE your_table AUTO_INCREMENT =1;

나는 이것이 할 것이라고 생각


답변

간단히 이렇게 :

ALTER TABLE tablename AUTO_INCREMENT = value;

참조 : http://dev.mysql.com/doc/refman/5.1/en/alter-table.html


답변

여기에 이미지 설명을 입력하십시오“operations”탭에서 phpmyadmin을 사용하는 매우 쉬운 방법이 있습니다. 테이블 옵션에서 원하는 숫자로 자동 증분을 설정할 수 있습니다.


답변

나를 위해 일한 최고의 솔루션 :

ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;

빠르고 innoDB와 함께 작동하며 현재 최대 값을 알 필요가 없습니다! 이 방법으로 자동 증분 카운터가 재설정되고 최대 값이 존재하면 자동으로 시작됩니다.


답변

이 질문에 대한 가장 높은 답변은 “ALTER yourtable AUTO_INCREMENT = value”를 권장합니다. 그러나 이것은 valuealter에서 autoincrement 열의 현재 최대 값보다 큰 경우에만 작동합니다 . MySQL 8 문서에 따르면 :

카운터를 현재 사용중인 값보다 작거나 같은 값으로 재설정 할 수 없습니다. InnoDB 및 MyISAM의 경우, 값이 현재 AUTO_INCREMENT 열에있는 최대 값보다 작거나 같은 경우 값은 현재 최대 AUTO_INCREMENT 열 값에 1을 더한 값으로 재설정됩니다.

본질적으로 AUTO_INCREMENT 만 변경하여 자동 증분 열의 값을 늘리고 OP가 질문의 두 번째 부분에서 요구하는대로 1로 재설정하지는 않습니다. 실제로 AUTO_INCREMENT를 현재 최대 값에서 아래쪽으로 설정할 수있는 옵션에 대해서는 자동 증분 자동 재설정 기본 키 순서를 살펴보십시오 .