sql >> Database >  >> RDS >> Mysql

automatisch ophogen van de primaire waardoor er gaten in het tellen blijven

Dit is zo ontworpen en zal altijd gebeuren.

Waarom?

Laten we 2 overlappende transacties nemen die INSERT's doen

  • Transactie 1 doet een INSERT, krijgt de waarde (laten we zeggen 42), doet meer werk
  • Transactie 2 doet een INSERT, krijgt de waarde 43, doet meer werk

Dan

  • Transactie 1 mislukt. Rolt terug. 42 blijft ongebruikt
  • Transactie 2 voltooid met 43

Als opeenvolgende waarden gegarandeerd waren, zou elke transactie de een na de ander moeten gebeuren. Niet erg schaalbaar.

Zie ook Ingevoegde records altijd aaneengesloten identiteit ontvangen Waarden (SQL Server maar hetzelfde principe is van toepassing)



  1. Primaire sleutel voor automatische verhoging invoegen in bestaande tabel

  2. Verbinding maken met MySQL vanaf de opdrachtregel

  3. Hoe MICROSECOND() werkt in MariaDB

  4. MySQL RADIANS() Functie – Converteren van graden naar radialen