sql >> Base de Datos >  >> RDS >> Mysql

¿MySQL reutilizará los ID eliminados cuando se aplique el incremento automático?

InnoDB restablece el campo auto_increment cuando reinicia la base de datos.

Cuando InnoDB se reinicia, encuentra el valor más alto en la columna y luego comienza desde allí.

Esto no sucederá en MyISAM porque almacena en caché la última identificación incrementada.

Actualizar

Esta característica/error existe desde 2003 y puede provocar problemas graves. Tome el ejemplo a continuación,

  1. La tabla t1 tiene una clave primaria auto-inc.

  2. La tabla t2 tiene una columna para la clave principal en t1 sin una "restricción" de clave externa. En otras palabras, cuando se elimina una fila en t1, las filas correspondientes en t2 quedan huérfanas.

  3. Como sabemos, con el reinicio de InnoDB, una identificación puede volver a emitirse. Por lo tanto, las filas huérfanas en t2 pueden vincularse falsamente a filas nuevas en t1.