Это тот случай. У меня есть основная таблица с номером счета (int) и много таблиц с соответствующими данными. Когда счет выставляется, я увеличиваю номер счета в основной таблице и затем помещаю дополнительные данные, а также номер счета в остальные таблицы.
Поскольку все находится в транзакции (READ COMMITED), все изменения не записываются физически до тех пор, пока эта транзакция не будет зафиксирована.
Я знаю, что у меня будет ошибка, если какая-то другая транзакция будет использовать тот же номер счета-фактуры в то же время и выполнит сначала. Я мог бы повторить попытку с новым номером, но это лучший подход?
Если имеется много параллельных длинных счетов (транзакций с большим количеством данных), может быть много повторных попыток.
Я думаю, как быстро зарезервировать номер счета или заблокировать его, но я не знаю, как ....