Questa è una soluzione suggerita dal Manuale di MySQl :
Se expr viene fornito come argomento a LAST_INSERT_ID(), il valore dell'argomento viene restituito dalla funzione e viene ricordato come valore successivo da restituire da LAST_INSERT_ID(). Questo può essere utilizzato per simulare sequenze:
Crea una tabella per contenere il contatore di sequenza e inizializzalo:
mysql> CREATE TABLE sequence (id INT NOT NULL);
mysql> INSERT INTO sequence VALUES (0);
Usa la tabella per generare numeri di sequenza come questo:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();
L'istruzione UPDATE incrementa il contatore di sequenza e fa sì che la chiamata successiva a LAST_INSERT_ID() restituisca il valore aggiornato. L'istruzione SELECT recupera quel valore. La funzione API C mysql_insert_id() può essere utilizzata anche per ottenere il valore. Vedere Sezione 23.8.7.37, "mysql_insert_id()".
È possibile generare sequenze senza chiamare LAST_INSERT_ID(), ma l'utilità di utilizzare la funzione in questo modo è che il valore ID viene mantenuto nel server come ultimo valore generato automaticamente. È multiutente sicuro perché più client possono emettere l'istruzione UPDATE e ottenere il proprio valore di sequenza con l'istruzione SELECT (o mysql_insert_id()), senza influenzare o essere influenzati da altri client che generano i propri valori di sequenza.