предположим, что у меня 20 строк в моей таблице, теперь я удалил последние 4 строки. В следующий раз я вставил еще 2 строки, а затем первичный ключ. будет
1,2,3...16,21,22.
Есть ли способ восстановить этот ключ, означает любой способ сохранить строку в самом начале 16, и результат будет
1,2,3...16,17,18
Вам это не нужно. Поверь мне!
Это немного неприятно, ведь Вадим говорит. Также опасная игра, если у вас есть связанные таблицы.
Аналогично этому вопросу: Перенормировать первичный ключ
не знаете, какую базу данных вы используете, но это может помочь: SQLite Reset Primary Key Field
Зачем это нужно?
Вы спрашиваете, почему нет?
потому что позволяет говорить, что ваша таблица – пользователи – теперь, когда вы меняете ключи здесь, область «posted_by» в сообщениях (например) теперь покажет другого пользователя … это плохая практика.
Это можно сделать, но это повредит вашей базе данных. Если вы собираетесь это сделать, вам нужно понять ТОЧНО, что вы делаете, и как это повлияет на все в вашей базе данных (связанные таблицы, репликация, резервное копирование и т. Д.). Вот ссылка с информацией о том, как это сделать, но я настоятельно рекомендую вам пересмотреть.
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
Вы можете присвоить значение столбцу auto_increment, если вставленное / обновленное значение не нарушает уникальность. Также, как и другие, вы должны убедиться, что вы не испортили никаких отношений. Если вы делаете это, потому что хотите отображать ПК где-то в своем пользовательском интерфейсе, вам нужно либо изменить таблицу на наличие поля DisplayID, либо написать запрос, который возвращает последовательный итератор после заказа PK.