Mysql
 sql >> Base de données >  >> RDS >> Mysql

Réserver des ID mySQL auto-incrémentés ?

La seule façon de générer une valeur d'auto-incrémentation est de tenter l'insertion. Mais vous pouvez annuler cette transaction et toujours lire l'identifiant généré. Dans MySQL 5.1 et versions ultérieures, le comportement par défaut est que les valeurs d'auto-incrémentation ne sont pas "renvoyées" à la pile lorsque vous effectuez une restauration.

START TRANSACTION;
INSERT INTO mytable () VALUES ();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @my_ai_value;

Maintenant, vous pouvez être sûr qu'aucune autre transaction n'essaiera d'utiliser cette valeur, vous pouvez donc l'utiliser dans vos processus externes, puis enfin insérer manuellement une valeur qui utilise cette valeur d'identifiant (lorsque vous insérez une valeur d'identifiant spécifique, MySQL ne générer une nouvelle valeur).