Можеш да го направиш, при условие, че типа на таблицата е MyISAM
[sql]ALTER TABLE t2 AUTO_INCREMENT = value;[/sql]
You cannot reset the counter to a value less than or equal to any that have already been used. For MyISAM, if the value is less than or equal to the maximum value currently in the AUTO_INCREMENT column, the value is reset to the current maximum plus one.
С други думи, дори няма нужда да проверяваш кое е предишното най-голямо число, защото ако сложиш някое по-малко, MySQL автоматично ще го направи на сегашното съществуващо най-голямо плюс 1. Винаги можеш да го сетваш на нула и винаги ще бъде правилно:
[sql]ALTER TABLE t2 AUTO_INCREMENT = 0;[/sql]
Test case:
[sql]
create table book (
id int(10) unsigned primary key auto_increment,
title varchar(100) not null
) engine=MyISAM;
insert into book values (NULL, 'Lord of the Rings');
insert into book values (NULL, 'PHP 5');
insert into book values (NULL, 'Thinking in Java');
show table status like 'book'\G
Auto_increment: 4
delete from book where id = 3;
alter table book auto_increment = 0;
show table status like 'book'\G
Auto_increment: 3
[/sql]
Това обаче не е оптимален вариант, ако таблицата е голяма, защото за да се извърши това действие, MySQL създава временна таблица, копира цялата налична инфромация в новат атаблица, изтрива старата таблица, преименува новата таблица с името на старата.
Ето какво е предложението в този случай:
The bottom line for me is to go back to the "old fashioned way" - just insert a dummy row and explicitly set the AUTO_INCREMENT column to N - 1, then immediately delete the dummy row. The next row that is inserted will start at N and go from there.
Източник: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html#c10750