2012-05-22 3 views
12

Столбец item_category_id является значением автоматического увеличения в таблице mysql.Как сбросить номер автоинкремента/столбец в таблице MySql

Мне нужно удалить все значения & Следующая вставка должна начинаться с 1. Если я удалить все значения & пытаются вставить новую строку, то она начинается с некоторого 30-х & 40-х годов.

item_category_id item_category_name 
    1      qqq 
    25     ccc 
    32     vvv 
    29     bb 
    4      bbb 
    31     hhh 
    34     mmm 
    33     rrr 

ответ

34
ALTER TABLE TABLENAME AUTO_INCREMENT = 1 

Вместо использования Удалить, если вы используете Truncate, которые будут удалены все данные, а также будет сбросить автоинкрементного.

TRUNCATE TABLE TABLENAME 
+0

Если у вас есть внешние ключи, в этом случае, вам нужно для добавления 'SET FOREIGN_KEY_CHECKS = 0;' перед усечением и 'SET FOREIGN_KEY_CHECKS = 1;' после – brianlmerritt

8

Если вы используете PhpMyAdmin для управления базой данных, вы могли бы просто

  • Выберите YOUR_TABLE
  • Перейдите More
  • Затем перейдите к Operations
  • Там вы найдете AUTO_INCREMENT поле, которое вы можете изменить:

How to change <code>AUTO_INCREMENT</code> value

3
SET @num := 0; 

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

ALTER TABLE your_table AUTO_INCREMENT =1; 

Я думаю, это будет делать это

+0

Я согласен с вашим ответом, но я не согласен с последним предложением alter. Скажем, если у вас 1000 записей, ваш оператор обновления будет технически сбросить значения идентификаторов от 1 до 1000. После этого не имеет смысла устанавливать значение AUTO_INCREMENT в 1, а должно быть 1001. Это имеет смысл ? Значение alter должно быть примерно таким: ALTER TABLE your_table AUTO_INCREMENT = ((SELECT MAX (id) FROM your_table) +1); – Moll

Смежные вопросы