Jeśli auto-inkrementacja nie jest wystarczająco dobra dla Twoich potrzeb, możesz utworzyć atomowy mechanizm sekwencji za pomocą n nazwane sekwencje takie jak to:
Utwórz tabelę do przechowywania sekwencji:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Zakładając, że masz wiersz dla „foo” w tabeli, możesz niepodzielnie uzyskać następujący identyfikator sekwencji:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Nie wymaga zamków. Obie instrukcje muszą zostać wykonane w tej samej sesji, tak aby zmienna lokalna @next była faktycznie zdefiniowana, gdy nastąpi wybór.