Om automatisk ökning inte är tillräckligt bra för dina behov kan du skapa en atomsekvensmekanism med n namngivna sekvenser så här:
Skapa en tabell för att lagra dina sekvenser:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Om du antar att du har en rad för 'foo' i tabellen kan du atomärt få nästa sekvens-id så här:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Inga lås krävs. Båda satserna måste köras i samma session, så att den lokala variabeln @next faktiskt definieras när selektionen sker.