Als auto-increment niet goed genoeg is voor uw behoeften, kunt u een atoomvolgordemechanisme maken met n benoemde reeksen als volgt:
Maak een tabel om uw reeksen op te slaan:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Ervan uitgaande dat je een rij voor 'foo' in de tabel hebt, kun je atomair de volgende reeks-ID als volgt krijgen:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Geen sloten nodig. Beide instructies moeten in dezelfde sessie worden uitgevoerd, zodat de lokale variabele @next daadwerkelijk wordt gedefinieerd wanneer de selectie plaatsvindt.