¿Cómo puedo restablecer el AUTO_INCREMENT
de un campo?
Quiero que comience a contar de 1
nuevo.
mysql
sql
auto-increment
carrera
fuente
fuente
TRUNCATE TABLE yourTableName;
Respuestas:
Puede restablecer el contador con:
Para InnoDB no puede establecer el
auto_increment
valor más bajo o igual al índice actual más alto. (cita de ViralPatel ):¿ Vea cómo restablecer un AutoIncrement de MySQL usando un valor MAX de otra tabla? sobre cómo obtener dinámicamente un valor aceptable.
fuente
circular reference
curcular reference
?fuente
Creo que esto lo hará
fuente
UPDATE
actualizará todos los valores en laid
columna.Simplemente así:
referencia: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
fuente
reset
significa establecerlo en el valor predeterminado ... para que pueda reemplazar "valor" por 1Hay una manera muy fácil con phpmyadmin en la pestaña "operaciones", puede establecer, en las opciones de la tabla, aumento automático al número que desee.
fuente
La mejor solución que funcionó para mí:
¡Es rápido, funciona con innoDB, y no necesito saber el valor máximo actual! De esta manera, el contador de incremento automático se reiniciará y se iniciará automáticamente a partir del valor máximo existente.
fuente
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name = 'my_table' AND table_schema = DATABASE( ) ;
5.6.15
, mientrasALTER TABLE tablename AUTO_INCREMENT = 1
que no .Las respuestas mejor calificadas a esta pregunta recomiendan "ALTERAR yourtable AUTO_INCREMENT = value". Sin embargo, esto solo funciona cuando
value
la alteración es mayor que el valor máximo actual de la columna de autoincremento. De acuerdo con la documentación de MySQL 8 :En esencia, solo puede alterar AUTO_INCREMENT para aumentar el valor de la columna de autoincremento, no restablecerlo a 1, como el OP pregunta en la segunda parte de la pregunta. Para ver las opciones que realmente le permiten establecer el AUTO_INCREMENT hacia abajo desde su máximo actual, eche un vistazo a Reordenar / restablecer la clave primaria de incremento automático .
fuente
Agregar una actualización porque la funcionalidad cambió en MySQL 5.6. A partir de MySQL 5.6, PUEDES usar la ALTER TABLE simple con InnoDB:
Los documentos se actualizan para reflejar esto:
http://dev.mysql.com/doc/refman/5.6/en/alter-table.html
Mi prueba también muestra que la tabla NO se copia, simplemente se cambia el valor.
fuente
Hay buenas opciones en Cómo restablecer la columna de aumento automático de MySQL
Tenga en cuenta que
ALTER TABLE tablename AUTO_INCREMENT = value;
no no funciona para InnoDBfuente
DELETE
(oROLLBACK
) no recuperará los identificadores. Una excepción: después de un reinicio (o bloqueo), se calcula que la siguiente identificación esMAX(id)+1
, recuperando así los identificadores eliminados al final . Excepción a la excepción: MySQL 8.0 deja esos identificadores sin usar.Utilicé esto en algunos de mis scripts, el campo de identificación se descarta y luego se agrega nuevamente con la configuración anterior, todos los campos existentes dentro de la tabla de la base de datos se completan con nuevos valores de incremento automático, esto también debería funcionar con InnoDB.
Tenga en cuenta que todos los campos dentro de la tabla serán contados y tendrán otros identificadores.
fuente
También puede usar la
TRUNCATE
tabla de sintaxis como esta:TRUNCATE TABLE table_name
¡¡TENER CUIDADO!!
TRUNCATE TABLE your_table
se elimine todo en tuyour_table
!!fuente
TRUNCATE
también eliminará TODAS sus filas en la tabla especificada.TRUNCATE
restablecerá losauto_increment
campos también? Mi caso de uso es borrar los datos antiguos en la tabla e iniciar las ID desde 1 nuevamente para obtener datos nuevos (imagínese, borrando la tabla para un uso adecuado después de completar la prueba). Pensé que tendríaDROP
toda la mesa yCREATE
otra vez.auto_increment
valor actual , use enDELETE FROM
lugar deTRUNCATE
.es para mesa vacía:
si tiene datos pero desea ordenarlos, le recomiendo usar esto:
fuente
Aquí está mi solución, pero no aconsejaré hacerlo si su columna tiene restricciones o está conectada como clave externa a otras tablas, ya que tendría efectos negativos o incluso no funcionaría.
> Primero: suelte la columna
> Segundo: recrea la columna y configúrala como PRIMERO si la quieres como la primera columna, supongo.
Esto funciona bien!
fuente
A partir de MySQL 5.6, el siguiente enfoque funciona más rápido debido a DDL en línea (nota
algorithm=inplace
):alter table tablename auto_increment=1, algorithm=inplace;
fuente
Simplemente puede truncar la tabla para restablecer la secuencia
fuente
Intenté alterar la tabla y establecer auto_increment en 1 pero no funcionó. Decidí eliminar el nombre de la columna que estaba incrementando, luego creé una nueva columna con su nombre preferido y configuré esa nueva columna para que se incremente desde el inicio.
fuente
El contador de incremento automático para una tabla se puede (re) configurar de dos maneras:
Al ejecutar una consulta, como otros ya explicaron:
ALTER TABLE <table_name> AUTO_INCREMENT=<table_id>;
Usando Workbench u otra herramienta de diseño de base de datos visual. Voy a mostrar en Workbench cómo se hace, pero no debería ser muy diferente en otras herramientas también. Al hacer clic derecho sobre la tabla deseada y elegir
Alter table
desde el menú contextual. En la parte inferior, puede ver todas las opciones disponibles para modificar una tabla. ElijaOptions
y obtendrá este formulario:Luego, simplemente configure el valor deseado en el campo
Auto increment
como se muestra en la imagen. Básicamente, esto ejecutará la consulta que se muestra en la primera opción.fuente
Para actualizar la última más una identificación
fuente
ALTER TABLE tablename AUTO_INCREMENT = 1
fuente
Busqué en Google y encontré esta pregunta, pero la respuesta que realmente estoy buscando cumple dos criterios:
Como no pude encontrar exactamente lo que quiero aquí, he improvisado la respuesta de varias respuestas y la he compartido aquí.
Pocas cosas a tener en cuenta:
id
con tipo comoint
clave principalPaso 1: Crear procedimiento almacenado
crear un procedimiento almacenado como este:
Entonces ejecútalo.
Antes de la ejecución, se ve así cuando mira en Procedimientos almacenados en su base de datos.
Cuando ejecuto, simplemente selecciono el procedimiento almacenado y presiono Ejecutar selección
Nota: la parte delimitadores es crucial. Por lo tanto, si copia y pega de las respuestas seleccionadas en esta pregunta, tienden a no funcionar por este motivo.
Después de correr, debería ver el procedimiento almacenado
Si necesita cambiar el procedimiento almacenado, debe eliminar el procedimiento almacenado, luego seleccione ejecutar nuevamente.
Paso 2: llame al procedimiento almacenado
Esta vez simplemente puede usar consultas normales de MySQL.
Originalmente de mis propias notas de consultas SQL en https://simkimsia.com/library/sql-queries/#mysql-reset-autoinc y adaptado para StackOverflow
fuente
fuente
Intenta ejecutar esta consulta
O pruebe esta consulta para restablecer el incremento automático
Y establecer el incremento automático y luego ejecutar esta consulta
fuente
Le sugiero que vaya al navegador de consultas y haga lo siguiente:
Auto_increment debería restablecerse a uno una vez que ingrese una nueva fila en la tabla.
No sé qué sucederá si intentas agregar una fila donde ya existe un valor de campo auto_increment.
¡Espero que esto ayude!
fuente
La mejor manera es eliminar el campo con AI y agregarlo nuevamente con AI, funciona para todas las tablas
fuente