sql >> Database teknologi >  >> RDS >> Mysql

Vil du reservere mySQL auto-incremented ID'er?

Den eneste måde at generere en automatisk stigningsværdi på er at forsøge at indsætte. Men du kan rulle den transaktion tilbage og stadig læse det genererede id. I MySQL 5.1 og nyere er standardadfærden, at auto-increment-værdier ikke "returneres" til stakken, når du ruller tilbage.

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

Nu kan du være sikker på, at ingen anden transaktion vil forsøge at bruge den værdi, så du kan bruge den i dine eksterne processer, og så til sidst indsætte en værdi manuelt, der bruger den id-værdi (når du indsætter en specifik id-værdi, gør MySQL ikke generere en ny værdi).



  1. Fejl ved Update Join

  2. MySQL High Availability Framework Forklaret – Del III:Fejlscenarier

  3. Mysql driver problemer

  4. Kan ikke oprette forbindelse til mysql fra Visual Studio 2015