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

Vil MySQL genbruge slettede ID'er, når Auto Increment anvendes

InnoDB nulstiller feltet auto_increment, når du genstarter databasen.

Når InnoDB genstarter, finder den den højeste værdi i kolonnen og starter derefter derfra.

Dette vil ikke ske i MyISAM, fordi det cacherer det sidste øgede id.

Opdater

Denne funktion/fejl har eksisteret siden 2003 og kan føre til alvorlige problemer. Tag eksemplet nedenfor,

  1. Tabel t1 har en auto-inc primær nøgle.

  2. Tabel t2 har en kolonne for den primære nøgle i t1 uden en fremmednøgle "begrænsning". Med andre ord, når en række slettes i t1, bliver de tilsvarende rækker i t2 forældreløse.

  3. Som vi ved med InnoDB genstart, kan et id blive genudstedt. Derfor kan forældreløse rækker i t2 være forkert forbundet med nye rækker i t1.



  1. Rettelser til SQL Server 2012 &2014 Online Index Rebuild Issue

  2. Gruppering i interval på 5 minutter inden for et tidsinterval

  3. Hvordan konverterer man et helt MySQL-databasetegnsæt og sortering til UTF-8?

  4. Opdel afgrænset strengværdi i rækker