Chcesz użyć sekwencji .
Dwa zastrzeżenia:
-
AUTO_INCREMENT
funkcja opisana w artykule jest niestandardowa i może powodować problemy z przenoszeniem podczas przenoszenia do innej bazy danych. -
Jeśli
INSERT
zostanie przerwane, liczba z sekwencji jest nadal zużywana, więc możesz skończyć z dziurami w sekwencji. Jeśli jest to niedopuszczalne, użyj automatycznie wygenerowanej sekwencji dla klucza głównego (zastępczego) i dodaj oddzielną mapę z tego klucza do „oficjalnego” numeru sekwencji, wymuszając unikalność w indeksie tej tabeli.
Alternatywą jest wymuszenie UNIQUE
w bazie danych, użyj odpowiedniego TRANSACTION ISOLATION LEVEL
i dodaj logikę aplikacji, aby obsłużyć awarię INSERT
.