- Desde
- 1 Oct 2019
- Mensajes
- 2,458
- Reacciones
- 2,281
- Honor
- 663
Este es un error de datos de incremento automático esencialmente "corruptos", generalmente causado por la manipulación manual de los datos en un campo de incremento automático.
Los campos de incremento automático se utilizan para mantener el valor de las nuevas entradas únicas. Nunca debe asignar ese valor manualmente, ya que MySQL mantiene una base de datos de back-end de datos sobre qué número debe aumentar al siguiente, y si se usa ese número (o si ha causado que el valor sea extremadamente alto, excediendo las limitaciones de enteros) , obtendrás el error
Si obtiene este error, no se debe a nuestras consultas proporcionadas y se debe a que usted o alguien del personal de su servidor estaba agregando entradas manualmente y manipularon el campo `índice`, en lugar de dejarlo en blanco para que el incremento automático pueda hacer su trabajo, o se ha quedado sin espacio porque se ha incrementado automáticamente a un valor que excede lo que puede admitir el tipo de datos de la columna.
Además, verifique que su base de datos no esté utilizando TINYINT en lugar de INT o BIGINT para `index` (o cualquiera que sea el nombre del campo de incremento automático que está causando el problema). Si es así, entonces la razón por la que se produce el error es porque ha excedido el valor máximo para aumentar automáticamente (ya sea porque omitió una tonelada debido a que ingresó manualmente un número realmente alto o porque realmente tiene la cantidad máxima de valores), debido a las severas limitaciones de TINYINT.
Existen dos posibles soluciones para corregir el error:
1. Cambie el tipo de datos de la columna a "BIGINT", lo que le dará muchos más números para aumentar automáticamente
2. Ejecute la siguiente consulta para intentar una reparación automática de los valores de incremento automático (¡haga primero una copia de seguridad!):
Reemplace "tbl_name" con la tabla que causa los problemas.
Los campos de incremento automático se utilizan para mantener el valor de las nuevas entradas únicas. Nunca debe asignar ese valor manualmente, ya que MySQL mantiene una base de datos de back-end de datos sobre qué número debe aumentar al siguiente, y si se usa ese número (o si ha causado que el valor sea extremadamente alto, excediendo las limitaciones de enteros) , obtendrás el error
Codigo:
Necesitas,
Acceder
o
Registrarse para ver el contenido.
Además, verifique que su base de datos no esté utilizando TINYINT en lugar de INT o BIGINT para `index` (o cualquiera que sea el nombre del campo de incremento automático que está causando el problema). Si es así, entonces la razón por la que se produce el error es porque ha excedido el valor máximo para aumentar automáticamente (ya sea porque omitió una tonelada debido a que ingresó manualmente un número realmente alto o porque realmente tiene la cantidad máxima de valores), debido a las severas limitaciones de TINYINT.
Type | Bytes | Minimum Value (Signed/Unsigned) | Maximum Value (Signed/Unsigned) |
---|---|---|---|
TINYINT | 1 | -128 / 0 | 127 / 255 |
SMALLINT | 2 | -32768 / 0 | 32767 / 65535 |
MEDIUMINT | 3 | -8388608 / 0 | 8388607 / 16777215 |
INT | 4 | -2147483648 / 0 | 2147483647 / 4294967295 |
BIGINT | 8 | -9223372036854775808 / 0 | 9223372036854775807 / 18446744073709551615 |
Existen dos posibles soluciones para corregir el error:
1. Cambie el tipo de datos de la columna a "BIGINT", lo que le dará muchos más números para aumentar automáticamente
2. Ejecute la siguiente consulta para intentar una reparación automática de los valores de incremento automático (¡haga primero una copia de seguridad!):
Codigo:
Necesitas,
Acceder
o
Registrarse para ver el contenido.