Du vill använda en sekvens .
Två varningar:
-
AUTO_INCREMENT
Funktionen som beskrivs i artikeln är icke-standard och kan ge problem med portabilitet när du flyttar till en annan databas. -
Om en
INSERT
avbryts, konsumeras ett nummer från sekvensen fortfarande, så du kan sluta med hål i sekvensen. Om det är oacceptabelt, använd en autogenererad sekvens för den primära (surrogat)nyckeln och lägg till en separat karta från den nyckeln till det "officiella" sekvensnumret, vilket framtvingar unikhet i tabellens index.
Alternativet är att genomdriva UNIQUE
ness i databasen, använd en lämplig TRANSACTION ISOLATION LEVEL
och lägg till programlogik för att hantera fel på INSERT
.