Общая логика для предложения RESET BY
заключается в проверке текущего значения (max(ID)
) и добавлении смещения (например, +1
), чтобы избежать двойного распределения значения ключа.
Неиспользование этой опции фактически отключает возможность автоматической установки значения текущей последовательности на значение, которое не будет конфликтовать с существующими сохраненными значениями.
Для обеспечения некоторого контекста: обычно генератор порядковых номеров использует кэш (даже если он не настроен по умолчанию) для обеспечения высокоскоростного использования порядковых номеров.
В случае сбоя системы числа в кеше, которые еще не были использованы, «теряются» в том смысле, что база данных не сохраняет информацию о том, какие числа из кеша были извлечены восстановимым способом.
Используя предложение RESET BY
, «потеря» чисел может быть уменьшена, когда последовательность возвращается к последнему фактически использованному порядковому номеру.