Как я могу сбросить автоинкремент таблицы MySQL до 1 в phpMyAdmin?


20

Я знаю, что в MySQL в командной строке я могу сбросить поле автоинкремента таблицы в 1 с этим:

ALTER TABLE tablename AUTO_INCREMENT = 1

Мне любопытно, если есть способ сделать это из phpMyAdmin. Что-то вроде флажка для сброса автоинкремента или что-то еще в этом духе?

Не то чтобы в подходе командной строки что-то не так. Еще одна из тех любопытных вещей, о которых я продолжаю думать ... Заранее спасибо!

Ответы:


19

PHPMyAdmin

Возможно, вы можете просто выбрать вкладку Операции phpMyAdmin:

  • В phpMyAdmin щелкните по таблице, которую вы хотите сбросить или измените значение AUTO_INCREMENT.
  • Нажмите на вкладку Операции
  • В поле «Параметры таблицы» найдите поле auto_increment.
  • Введите новое начальное значение auto_increment
  • Нажмите кнопку «Перейти» для поля «Параметры таблицы».

Поскольку это один из наиболее часто задаваемых вопросов для phpmyadmin, вы можете узнать больше об этом в этом блоге: http://trebleclick.blogspot.com/2009/01/mysql-set-auto-increment-in-phpmyadmin.html

Дополнительная информация

Для пустой таблицы другой способ сбросить атрибут auto_increment - запустить

TRUNCATE TABLE mydb.tablename;

Не запускайте это, если у вас есть данные. Если вы хотите получить данные, будьте моим гостем.

В phpmyadmin просто щелкните SQLвкладку, введите команду и запустите ее.

Для непустой таблицы вы можете настроить атрибут auto_increment на максимальный из существующих идентификаторов в случае удаления более высоких записей.

Во-первых, оптимизировать таблицу

OPTIMIZE TABLE mydb.mytable;

Затем найдите самое высокое значение для столбца auto_increment (скажем, оно есть id)

SELECT MAX(id) maxid FROM mydb.mytable;

Предположим, ответ вернется 27. Перейдите на вкладку «Операции» и введите 28.


+1 за усеченный, я бросал и воссоздал.
Маккензм

@mckenzm Под капотом TRUNCATE TABLE сбрасывается и воссоздается ( dev.mysql.com/doc/refman/5.6/en/… )
RolandoMySQLDBA

@mckenzm Я только что прочитал твой профиль. 25 лет COBOL ??? Ты бедная измученная душа.
RolandoMySQLDBA

TBH, вероятно, было 13 раз за те же два года ... и во многом это было просто: встроенный SQL, командный уровень CICS, системные вызовы VMS ... Предварительно обработанные макросы. Лего.
mckenzm

11

В качестве дополнения к другим ответам, я бы предпочел более визуальный подход:

  1. Нажмите на таблицу, которую вы хотите изменить.

  2. Нажмите Operations:

введите описание изображения здесь

  1. Посмотрите в разделе « Параметры таблицы »:

введите описание изображения здесь

Также обратите внимание, что:

–§–   Вы не можете сбросить счетчик до значения, которое меньше или равно значению, которое используется в данный момент. И для InnoDB, и для MyISAM, если значение меньше или равно максимальному значению, которое в данный момент находится в AUTO_INCREMENTстолбце, значение сбрасывается до текущего максимального AUTO_INCREMENTзначения столбца плюс один.


1
Я все еще использую phpMyAdmin 4.0.1-rc1. Я думаю, он слишком старый, так как у меня нет опции AUTO_INCREMENT на этой странице.
Kar.ma

-2
SET @num := 0;
UPDATE tablename SET id = @num := (@num+1);
ALTER TABLE tablename AUTO_INCREMENT = 1;

2
А как насчет всех связанных данных?
Colin 't Hart
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.