Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy MySQL ponownie użyje usuniętych identyfikatorów po zastosowaniu automatycznego przyrostu?

InnoDB resetuje pole auto_increment po ponownym uruchomieniu bazy danych.

Po ponownym uruchomieniu InnoDB znajduje najwyższą wartość w kolumnie, a następnie zaczyna od niej.

To się nie stanie w MyISAM, ponieważ buforuje ostatni zwiększony identyfikator.

Aktualizacja

Ta funkcja/błąd istnieje od 2003 roku i może prowadzić do poważnych problemów. Weź przykład poniżej,

  1. Tabela t1 ma automatyczny klucz główny.

  2. Tabela t2 zawiera kolumnę dla klucza głównego w t1 bez „ograniczenia” klucza obcego. Innymi słowy, gdy wiersz zostanie usunięty w t1, odpowiadające mu wiersze w t2 są osierocone.

  3. Jak wiemy w przypadku ponownego uruchomienia InnoDB, identyfikator może zostać ponownie wydane. Dlatego osierocone wiersze w t2 mogą być fałszywie połączone z nowymi wierszami w t1.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konfiguracja Spring Boot Docker i Mysql

  2. Czy ORDER BY obowiązuje przed czy po DISTINCT?

  3. Jak sprawić, by wyszukiwanie wartości logicznych pełnego tekstu wychwyciło termin C++?

  4. Czy mogę utworzyć dynamiczny plik .htaccess?

  5. Jak uzyskać losowy zakres liczb całkowitych mysql?