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

MySQL riutilizzerà gli ID eliminati quando viene applicato l'incremento automatico

InnoDB reimposta il campo auto_increment quando riavvii il database.

Quando InnoDB si riavvia, trova il valore più alto nella colonna e poi ricomincia da lì.

Questo non accadrà in MyISAM perché memorizza nella cache l'ultimo ID incrementato.

Aggiorna

Questa funzionalità/bug è in circolazione dal 2003 e può causare seri problemi. Prendi l'esempio qui sotto,

  1. La tabella t1 ha una chiave primaria autoinc.

  2. La tabella t2 ha una colonna per la chiave primaria in t1 senza un "vincolo" di chiave esterna. In altre parole, quando una riga viene eliminata in t1 le righe corrispondenti in t2 sono orfane.

  3. Come sappiamo con il riavvio di InnoDB, un ID può essere ristampato. Pertanto le righe orfane in t2 possono essere falsamente collegate a nuove righe in t1.