Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Reservando IDs incrementados automaticamente do mySQL?


A única maneira de gerar um valor de incremento automático é tentar a inserção. Mas você pode reverter essa transação e ainda ler o id gerado. No MySQL 5.1 e posterior, o comportamento padrão é que os valores de incremento automático não são "retornados" à pilha quando você reverte.
START TRANSACTION;
INSERT INTO mytable () VALUES ();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @my_ai_value;

Agora você pode ter certeza de que nenhuma outra transação tentará usar esse valor, então você pode usá-lo em seus processos externos e, finalmente, inserir manualmente um valor que use esse valor de id (quando você insere um valor de id específico, o MySQL não gerar um novo valor).