Pokud automatický přírůstek není pro vaše potřeby dost dobrý, můžete vytvořit mechanismus atomové sekvence pomocí n pojmenované sekvence takto:
Vytvořte tabulku pro uložení sekvencí:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Za předpokladu, že máte v tabulce řádek pro 'foo', můžete atomicky získat další ID sekvence takto:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Nejsou potřeba žádné zámky. Oba příkazy musí být provedeny ve stejné relaci, takže místní proměnná @next je skutečně definována, když dojde k výběru.