Ако автоматичното увеличение не е достатъчно добро за вашите нужди, можете да създадете механизъм за атомна последователност с n наименувани последователности като това:
Създайте таблица за съхраняване на вашите последователности:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Ако приемем, че имате ред за 'foo' в таблицата, можете атомарно да получите следващия идентификатор на последователността, както следва:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Не се изискват ключалки. И двата оператора трябва да се изпълнят в една и съща сесия, така че локалната променлива @next действително да се дефинира, когато изборът се случи.