Искате да използвате последователност .
Две предупреждения:
-
AUTO_INCREMENTфункцията, описана в статията, е нестандартна и може да създаде проблеми с преносимостта при преместване към друга база данни. -
Ако
INSERTсе прекратява, число от последователността все още се консумира, така че може да се окажете с дупки в последователността. Ако това е неприемливо, използвайте автоматично генерирана последователност за първичния (сурогатен) ключ и добавете отделна карта от този ключ към „официалния“ пореден номер, като наложите уникалност в индекса на тази таблица.
Алтернативата е да наложите UNIQUE в базата данни, използвайте подходящо TRANSACTION ISOLATION LEVEL и добавете логика на приложението за справяне с неуспех към INSERT .