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