Вы надеваете» т. В любом случае не с автоматически увеличивающимся целым.
Вы можете изменить столбец, чтобы он не был автоматически увеличивающимся целым числом, но тогда вам нужно будет определить следующий идентификатор перед выполнением каждой вставки, что сделало бы все ваши запросы INSERT
излишне сложными, а код, более сложный для обслуживания , Не говоря уже о введении существенной точки отказа, если несколько потоков пытаются вставить, а операция для поиска следующего идентификатора и вставки записи не является полностью атомной.
Зачем вам это нужно? Нет причин, чтобы целое число первичного ключа, созданное в базе данных, было таким смежным. Его цель - быть уникальной, и пока она служит этой цели, она работает. Нет необходимости «заполнять отверстия» слева от ранее удаленных записей.
Вы можете добавить в базу данных другой столбец и выполнить логику поиска следующего смежного номера при вставке записей в этот столбец. Но вы все равно столкнетесь с теми же вышеупомянутыми проблемами условий гонки и ненужной сложностью.
Ваша логика приложения должна ** НИКОГДА не полагаться на фактическое значение первичного ключа. Поэтому в основном вы должны заботиться о том, есть ли значение 5 или 555. – zerkms
Авто- Клавиши incrememnt предназначены для обеспечения _uniqueness_, а не последовательности. Если вам нужно писать инкрементирующие числа в вашем коде приложения, сделайте это в своем цикле выборки. –
Я не хочу, чтобы имя файла было чем-то экстремальным, например /files/uploads/57427689.jpg, если это время когда-либо наступит, и около 300 000 пустых/удаленных строк, которые он мог бы использовать вместо этого. – Kody