Как записать последовательные значения max+1 в SQL без дублирования данных?
Добрый день, в laravel есть модель с таблицей,
Tickets:
- cabinet_id
- number
- time
Мы выбираем последнюю запись, в кабинет N, смотрим номер последней записи, после чего создаём новую запись с последним номером + 1, соответственно если в кабинет N была последняя запись под номером 10, то новая запись будет под номером 11( а если она перевалила за 999 мы присваиваем 1) , и всё прекрасно работает, но если отправить 2 запроса почти одновременно, с разницей менее 1 секунды, мы можем получить результат как :
10, 11, 11, 11, 12, 13
Я понимаю, что это происходит из за того что запросы выполняются параллельно, и на момент выборки запись 11 ещё не существует, и каждый запрос считает что может записать этот параметр, но по итогу создаются несколько разных записей с одним номером, как в Larave избежать такого дублирования ? AI как я понимаю не особо подходит для этого так как запись 11, может быть и в кабинет A,B,С так же как периодический повторятся когда обнуляется счётчик.