Это по замыслу - все СУБД действуют так, как это было с автоинкрементными столбцами.
В противном случае внешняя ссылочная целостность может быть повреждена. Для простого примера представьте, что вы храните URL-адреса сокращающей службы, используя в качестве ключа столбец с автоинкрементом. Вы не знаете, был ли кому-либо выдан сокращенный URL, а база данных, конечно же, нет, поэтому повторное использование идентификатора 1234 может привести к тому, что чья-то бедная бабушка посетит somenastypornsite.xxx вместо loverlyknitting.org, когда она щелкает http: / /shortthi.ng/1234 в старом письме, вместо того, чтобы получить сообщение «извините, но эта ссылка больше не существует в наших записях».
Также, если вы сбросите приращение после удаления последнего элемента, будете ли вы проходить всю работу (или ожидаете, что база данных) перенумерует все после 5-го элемента из 5 миллионов, когда 5-й элемент будет удален? дополнить изменения в других таблицах, где ограничения внешнего ключа указывают на столбец приращения? Такая дополнительная работа может стоить очень дорого с точки зрения ввода-вывода.
Если вы делаете сброс приращения точки после удаления последнего элемента, не очень очень осторожны ваших уровней изоляции транзакций: Вы можете сбросить его , так же , как другую транзакцию используют значения, что приводят к ошибкам (или хуже, немой неудаче), если Вы убедитесь, что ваши действия полностью изолированы.
Как правило, я рекомендую людям, работающим с базами данных, прочитать «Антипаттерны SQL», в которых есть глава по этому вопросу, озаглавленная «Аккуратные уловки с псевдо-ключами» (которая охватывает этот вопрос более дружественным образом, чем заголовок главы может показывать некоторым!). По сути, если значение имеет значение помимо того, что оно является ключом (или, самое большее, содержит информацию о порядке вставки), то, вероятно, оно не должно быть столбцом с автоинкрементным увеличением, и если оно не имеет значения, кроме того, что оно является ключом (или, в большинстве случаев, имеет порядок вставки). информация) тогда пробелы не должны иметь значения.