Мое требование - получить уникальный идентификатор из базы данных для обработки на сервере приложений (кластерное приложение). Для этого у меня есть таблица с одной ячейкой, содержащая значение X. Это значение будет увеличиваться при каждом получении.
BEGIN TRAN
UPDATE ID_TABLE SET VALUE = VALUE + 1
SELECT VALUE FROM ID_TABLE
END TRAN
Рассмотрим график двух трансаций (T1 и T2), происходящих следующим образом.UPDATE (T1), UPDATE (T2), READ (T1), READ (T2)
Возможно ли такое чередование для транзакций базы данных.
Есть ли способы избежать этого, кроме получения блокировки на столе в начале и снятия ее в конце, что изолирует транзакцию?