Това е решение предложено от ръководство за MySQl :
Ако expr е даден като аргумент на LAST_INSERT_ID(), стойността на аргумента се връща от функцията и се запомня като следващата стойност, която трябва да бъде върната от LAST_INSERT_ID(). Това може да се използва за симулиране на последователности:
Създайте таблица, която да държи брояча на последователностите и да го инициализирате:
mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES (0);
Използвайте таблицата, за да генерирате последователни номера като този:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1); mysql> SELECT LAST_INSERT_ID();
Инструкцията UPDATE увеличава брояча на последователностите и кара следващото извикване на LAST_INSERT_ID() да върне актуализираната стойност. Инструкцията SELECT извлича тази стойност. Функцията mysql_insert_id() C API също може да се използва за получаване на стойността. Вижте раздел 23.8.7.37, „mysql_insert_id()“.
Можете да генерирате поредици, без да извиквате LAST_INSERT_ID(), но полезността от използването на функцията по този начин е, че стойността на идентификатора се поддържа в сървъра като последната автоматично генерирана стойност. Той е безопасен за много потребители, тъй като множество клиенти могат да издадат декларацията UPDATE и да получат своя собствена стойност на последователността с оператора SELECT (или mysql_insert_id()), без да засягат или да бъдат засегнати от други клиенти, които генерират свои собствени стойности на последователността.