Mysql se incrementa automáticamente en 6. No estoy seguro de por qué ni cómo abordar los problemas.

 create table new_table(tinyint unsigned primary key auto_increment, 
                        display_name varchar(50));

También he usado

 create table new_table(int unsigned primary key auto_increment, 
                        display_name varchar(50));

No creo que esté haciendo nada extraño.

2
user3525290 23 oct. 2017 a las 14:48

3 respuestas

La mejor respuesta

Esto se debe a que ha establecido auto_increment_increment en 6, si entiendo su comentario correctamente.

  • Lea más al respecto aquí

Tenga en cuenta, sin embargo, que esto podría ser a propósito. Por lo general, esto se establece en una replicación maestro-maestro. Un maestro está configurado para usar números pares como valores de aumento automático, el otro maestro usa los valores impares.

Para volver a establecer el comportamiento habitual de incremento en 1, haga lo siguiente:

SET GLOBAL auto_increment_increment = 1; /*or the SESSION value, depending on your needs*/
SET GLOBAL auto_increment_offset = 1; /*or SESSION value...*/

También tenga en cuenta que tener huecos en una columna auto_increment no es gran cosa. Si la columna se desborda, use bigint en su lugar. Las columnas de aumento automático también pueden tener huecos debido a transacciones revertidas, por ejemplo. Cuando desee una numeración estrictamente secuencial de sus filas, ¡no confíe en auto_increment!

5
fancyPants 23 oct. 2017 a las 13:00

El administrador de la base de datos está utilizando la replicación y no me lo pudo decir. Nunca he usado la replicación, así que no sabía cómo funcionaba el incremento.

0
user3525290 10 may. 2018 a las 23:26

Esta debería ser la consulta

CREATE TABLE `new_table` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `display_name` varchar(50),
  PRIMARY KEY (`id`)
)

También para configurar el incremento automático a 1 uso

SET GLOBAL auto_increment_increment = 1;
0
Rishikesh Chandra 24 oct. 2017 a las 04:46