sql >> Databasteknik >  >> RDS >> Mysql

Kommer MySQL att återanvända borttagna ID när Auto Increment tillämpas

InnoDB återställer auto_increment-fältet när du startar om databasen.

När InnoDB startas om hittar den det högsta värdet i kolumnen och börjar sedan därifrån.

Detta kommer inte att hända i MyISAM eftersom det cachar det senast ökade ID:t.

Uppdatera

Denna funktion/bugg har funnits sedan 2003 och kan leda till allvarliga problem. Ta exemplet nedan,

  1. Tabell t1 har en auto-inc primärnyckel.

  2. Tabell t2 har en kolumn för primärnyckeln i t1 utan en främmande nyckel "begränsning". Med andra ord, när en rad raderas i t1 är motsvarande rader i t2 föräldralösa.

  3. Som vi vet med InnoDB omstart, kan ett id återutges. Därför kan föräldralösa rader i t2 felaktigt kopplas till nya rader i t1.



  1. Mysql-fråga för att ta bort dubbletter av Wordpress-kommentarer?

  2. Lagrad procedur ökar inkompatibel med sql_mode=only_full_group_by trots att sql_mode är tomt

  3. Hur använder man REGEXP med escape-sekvenser som ordgräns?

  4. Juli 2016 PSU misslyckas med att göra isqora