Как сделать первичный ключ серийно?

предположим, что у меня 20 строк в моей таблице, теперь я удалил последние 4 строки. В следующий раз я вставил еще 2 строки, а затем первичный ключ. будет

1,2,3...16,21,22. 

Есть ли способ восстановить этот ключ, означает любой способ сохранить строку в самом начале 16, и результат будет

 1,2,3...16,17,18 

Solutions Collecting From Web of "Как сделать первичный ключ серийно?"

Вам это не нужно. Поверь мне!

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

Аналогично этому вопросу: Перенормировать первичный ключ

не знаете, какую базу данных вы используете, но это может помочь: SQLite Reset Primary Key Field

Зачем это нужно?

Вы спрашиваете, почему нет?

потому что позволяет говорить, что ваша таблица – пользователи – теперь, когда вы меняете ключи здесь, область «posted_by» в сообщениях (например) теперь покажет другого пользователя … это плохая практика.

Это можно сделать, но это повредит вашей базе данных. Если вы собираетесь это сделать, вам нужно понять ТОЧНО, что вы делаете, и как это повлияет на все в вашей базе данных (связанные таблицы, репликация, резервное копирование и т. Д.). Вот ссылка с информацией о том, как это сделать, но я настоятельно рекомендую вам пересмотреть.

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

Вы можете присвоить значение столбцу auto_increment, если вставленное / обновленное значение не нарушает уникальность. Также, как и другие, вы должны убедиться, что вы не испортили никаких отношений. Если вы делаете это, потому что хотите отображать ПК где-то в своем пользовательском интерфейсе, вам нужно либо изменить таблицу на наличие поля DisplayID, либо написать запрос, который возвращает последовательный итератор после заказа PK.