sql >> Database >  >> RDS >> Mysql

MySQL automatisch verhoogde ID's reserveren?

De enige manier om een ​​waarde voor automatisch verhogen te genereren, is door te proberen de invoeging uit te voeren. Maar u kunt die transactie terugdraaien en toch de gegenereerde id lezen. In MySQL 5.1 en hoger is het standaardgedrag dat waarden voor automatisch ophogen niet worden "teruggegeven" aan de stapel wanneer u terugdraait.

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

Nu kunt u er zeker van zijn dat geen enkele andere transactie die waarde zal proberen te gebruiken, dus u kunt het gebruiken in uw externe processen, en tenslotte handmatig een waarde invoegen die die id-waarde gebruikt (wanneer u een specifieke id-waarde invoert, doet MySQL dat niet een nieuwe waarde genereren).



  1. Ontmoetingen op de werkplek:ruimte terugwinnen uit een te grote database

  2. Membership.ValidateUser retourneert altijd false na upgrade naar VS 2010 / .NET 4.0

  3. Databasecorruptie voorkomen in Microsoft Access

  4. PDO doorlussen en fetchAll afdrukken