Сброс счетчика auto_increment в MySQL

Имеется поле auto_increment:
CREATE TABLE table_name ( id INT NOT NULL AUTO_INCREMENT );
Даже при удалении всех записей из этой таблицы, при дальнейшем её заполнении счетчик auto_increment продолжит считать с того места, на котором остановится. Чтобы сбросить счетчик можно проделать следущее:
TRUNCATE TABLE table_name;
Эта команда удаляет всю таблицу, затем заново её воссоздает, и также сбрасывает счетчик auto_increment. Также эту команду лучше использовать для удаления таблицы, нежеле чем DELETE FROM table_name так как она работает быстрее.
Если удалять данные не нужно то можно поступить так:
ALTER TABLE table_name auto_increment=0;
где вместо нуля может быть и другое число с которого нужно продолжить счетчик.


May 29th, 2009 at 9:22 am
Truncate сбрасывает auto_increment для типов таблиц MyISAM,HEAP, не сбрасывает для InnoDB.
Для InnoDB работает вариант с alter table.
September 27th, 2011 at 1:45 pm
Чем чревато сбрасывать auto_increment в таблице wp_blogs в WPMS?