Toto je řešení navrhované MySQl manuál :
Pokud je výraz zadán jako argument funkce LAST_INSERT_ID(), funkce vrátí hodnotu argumentu a zapamatuje si ji jako další hodnotu, kterou vrátí funkce LAST_INSERT_ID(). Toto lze použít k simulaci sekvencí:
Vytvořte tabulku, která bude obsahovat čítač sekvencí, a inicializujte jej:
mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES (0);
Pomocí tabulky vygenerujte sekvenční čísla takto:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1); mysql> SELECT LAST_INSERT_ID();
Příkaz UPDATE zvýší čítač sekvence a způsobí, že další volání LAST_INSERT_ID() vrátí aktualizovanou hodnotu. Příkaz SELECT tuto hodnotu načte. K získání hodnoty lze také použít funkci mysql_insert_id() C API. Viz oddíl 23.8.7.37 „mysql_insert_id()“.
Sekvence můžete generovat bez volání LAST_INSERT_ID(), ale užitečnost použití funkce tímto způsobem spočívá v tom, že hodnota ID je na serveru udržována jako poslední automaticky vygenerovaná hodnota. Je bezpečný pro více uživatelů, protože více klientů může zadat příkaz UPDATE a získat svou vlastní sekvenční hodnotu pomocí příkazu SELECT (nebo mysql_insert_id()), aniž by to ovlivnilo nebo bylo ovlivněno ostatními klienty, kteří generují své vlastní sekvenční hodnoty.