Как сбросить первичный ключ таблицы? - PullRequest
47 голосов
/ 27 ноября 2009

В моей таблице tbphotos У меня было 100 записей. Затем я удалил все записи и теперь, когда я хочу перезапустить ввод данных, я вижу, что мой первичный ключ начинается не с 1, а с 101,

Есть ли способ сбросить первичный ключ?

Я использую учетную запись администратора MySQL.

Ответы [ 5 ]

84 голосов
/ 27 ноября 2009

alter table foo AUTO_INCREMENT = 1

29 голосов
/ 27 ноября 2009

Вы можете сбросить автоинкремент следующим образом:

ALTER TABLE tablename AUTO_INCREMENT = 1

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

3 голосов
/ 27 ноября 2009

Если вы используете TRUNC вместо удаления записей вручную, ваш первичный ключ будет сброшен.

0 голосов
/ 10 мая 2019

Это лучший скрипт для автоматического приращения сброса:

ALTER TABLE foo MODIFY your column increment int (11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

0 голосов
/ 12 октября 2017

Код ниже лучше всего, если у вас уже есть данные в базе данных, но вы хотите сбросить идентификатор с 1 без удаления данных. Скопируйте и запустите команду SQL

ALTER TABLE members DROP ID;
ALTER TABLE members AUTO_INCREMENT = 1;
ALTER TABLE members ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
...