Гарантируется как абсолютно ни при каких обстоятельствах, что бы вы могли получить значение, которое может быть меньше или равно текущему максимальному значению? Нет, такой гарантии нет. Тем не менее, обстоятельства, при которых этот сценарий может произойти, ограничены:
- Кто-то отключает вставку идентификатора и вставляет значение.
- Кто-то повторно заполняет столбец идентификации.
- Кто-то меняет знак значения приращения (т.е. вместо +1 он изменяется на -1)
Предполагая, что ни одно из этих обстоятельств не защищает вас от условий гонки, вы создаете ситуацию, когда следующее значение ниже существующего значения. Тем не менее, нет никакой гарантии, что строки будут зафиксированы в порядке их значений идентичности. Например:
- Откройте транзакцию, вставьте в таблицу столбец идентификаторов. Допустим, он получает значение 42.
- Вставить и зафиксировать в той же таблице другое значение. Допустим, он получает значение 43.
Пока первая транзакция не будет подтверждена, 43 существует, а 42 - нет. Столбец идентификации просто резервирует значение, но не определяет порядок фиксации.