自動インクリメント値を生成する唯一の方法は、挿入を試みることです。ただし、そのトランザクションをロールバックしても、生成されたIDを読み取ることができます。 MySQL 5.1以降では、デフォルトの動作では、ロールバック時に自動インクリメント値がスタックに「戻され」ません。
START TRANSACTION;
INSERT INTO mytable () VALUES ();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @my_ai_value;
これで、他のトランザクションがその値を使用しようとしないことを確認できるため、外部プロセスで使用し、最後にそのID値を使用する値を手動で挿入できます(特定のID値を挿入すると、MySQLはその値を使用しません)新しい値を生成します。