sql >> Databasteknik >  >> RDS >> Mysql

Vill du reservera mySQL auto-inkrementerade ID?

Det enda sättet att generera ett automatiskt inkrementvärde är att försöka infoga. Men du kan återställa den transaktionen och fortfarande läsa det genererade id:t. I MySQL 5.1 och senare är standardbeteendet att automatiska inkrementvärden inte "återförs" till stacken när du rullar tillbaka.

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

Nu kan du vara säker på att ingen annan transaktion kommer att försöka använda det värdet, så du kan använda det i dina externa processer, och sedan till sist infoga ett värde manuellt som använder det id-värdet (när du infogar ett specifikt id-värde, gör inte MySQL det generera ett nytt värde).



  1. Konvertera mysql TIME från 24 HR till AM/PM-format

  2. Infoga i alla celler när poster är fler än en PHP

  3. Hur man förbättrar hastigheten på InnoDB skriver per sekund av MySQL DB

  4. Att hyra ut bilar är lika enkelt som att köra:En datamodell för ett biluthyrningsföretag