Сброс счетчика 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;

где вместо нуля может быть и другое число с которого нужно продолжить счетчик.

2 комментария к посту “Сброс счетчика auto_increment в MySQL”

  1. Димон:

    Truncate сбрасывает auto_increment для типов таблиц MyISAM,HEAP, не сбрасывает для InnoDB.

    Для InnoDB работает вариант с alter table.

  2. exay:

    Чем чревато сбрасывать auto_increment в таблице wp_blogs в WPMS?

Оставить комментарий

Введите код с картинки


Поля обозначенные звездочкой (*) обязательны для заполнения