Подпоследовательность как первичный ключ
У меня есть сценарий, в котором мне нужно сгенерировать номер партии (первичный ключ) в следующем формате.
Номер партии: ( X X) ( X X X X X) Последовательность местоположения
Eg: 0100001
0100002
0200001
0100003
0200002
.......
Последовательность начинается с 00001 для каждой партии. Однако у нас не может быть генератора порядкового номера, чтобы сделать это. Возможные решения, которые у меня есть над головой:
- Создайте дополнительную таблицу, которая содержит числа. Но существует вероятность того, что несколько пользователей получат одинаковую последовательность, поскольку могут быть незафиксированные транзакции.
- Каждый раз, когда объект сохраняется, мы получаем максимальное значение (подстрока (batchnum,2)) из этого столбца и добавляем +1. Но это будет очень сильно перегружать производительность, а также приведет к тому, что несколько пользователей получат одинаковую последовательность.