Ответ 1
alter table foo AUTO_INCREMENT = 1
В моей таблице tbphotos
меня было 100 записей. Затем я удалил все записи, и теперь, когда я хочу перезапустить ввод данных, я вижу, что мой первичный ключ начинается не с 1, а с 101,
Есть ли способ сбросить первичный ключ?
Я использую учетную запись администратора MySQL.
alter table foo AUTO_INCREMENT = 1
Вы можете reset автоинкремент следующим образом:
ALTER TABLE tablename AUTO_INCREMENT = 1
Но если вы полагаетесь на значения автоинкремента, ваша программа очень хрупок. Если вам нужно назначить последовательные номера для ваших записей для работы вашей программы, вы должны создать для этого отдельный столбец, а для этого не использовать идентификатор автоматического инкремента базы данных.
Если вы используете TRUNC вместо ручного удаления записей, ваш первичный ключ будет reset.
Код ниже лучше всего, если у вас уже есть данные в базе данных, но вы хотите reset идентификатор от 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;
DBCC CHECKIDENT (yourTable, RESEED, 0);
Это сработало для меня:)
Это лучший скрипт для автоматического приращения сброса:
ALTER TABLE foo MODIFY your column increment int (11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;