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

Hvorfor er der nogle gange et eller flere huller i kolonnen for værdien af ​​automatisk stigning?

Det ser ud til at have noget at gøre med, hvordan dine INSERT-sætninger er dannet. Se denne violin , som er lidt ændret i forhold til dit eksempel. I dette tilfælde får du ikke huller (men det vil du sandsynligvis, hvis du tilføjer flere indlæg... det gør det faktisk .).

EDIT:Efter en lille smule mere graving fandt jeg ud af, at du ikke får huller, hvis du bruger MyISAM-motoren (i modsætning til InnoDB). Så måske er det en fejl eller et mærkeligt designvalg i InnoDB...?

EDIT 2:Yderligere gravearbejde har afsløret denne fejl , indgivet mod InnoDB-lagringsmotoren. Det matcher det originale spørgsmåls use-case meget nøje. Der er ikke givet nogen løsning på fejlen, men det ser ud til, at en løsning er at indstille innodb_autoinc_lock_mode til 0 i din my.cnf-fil før opstart af mysqld.




  1. Hvordan får jeg SQL*Plus til at oprette visninger/tabeller med en tom linje i midten af ​​create-sætningen?

  2. Tæl antallet af unikke tegn i en streng

  3. Hvordan forhindrer man dbms_output.put_line i at trimme indledende mellemrum?

  4. Indlejret transaktionsrulning mellem to sparepunkter?