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

INSERT IGNORE aumenta el contador de incrementos automáticos incluso si no se agrega ningún registro.

Citando de la página del manual para INSERT :

El INSERT IGNORE La sintaxis es solo una forma de suprimir ciertos mensajes de error y es útil cuando sabe que esos errores pueden ocurrir y/o desea manejarlos en una etapa posterior. Detrás de escena, todavía tiene una inserción regular, excepto que falla debido a una clave violada. MySQL necesita los valores de fila reales para hacer una inserción y el contador AUTO_INCREMENT se incrementará de acuerdo con reglas regulares :

  1. El valor de la columna es NULL.
  2. El valor de la columna no está establecido.
  3. El valor de la columna es mayor que el del contador.

Entonces, a menos que pueda repensar su lógica (por ejemplo, probar si los valores clave existen antes de hacer la inserción), la única forma de restablecer el contador es ALTER TABLE :

ALTER TABLE t2 AUTO_INCREMENT = value;