22 Votos

SQLite: Reiniciar AUTOINCREMENT

Pregunta de Invitado | Última actualización el 01/12/2022 | Creado el 08/05/2021

Tengo una columna ID en mi base de datos SQLite en la que estoy aumentando automáticamente el valor integer con la ayuda de AUTOINCREMENT tan pronto como se inserta un nuevo registro en la tabla.

Esto está funcionando como quiero. Sin embargo, con frecuencia elimino esta tabla y, tan pronto como vuelvo a escribir datos nuevos en la tabla vacía, el conteo no comienza desde el principio, sino desde el último valor entero que tenía la columna antes.

¿Es posible restablecer este valor de AUTOINCREMENT para que comience en 0 respectivamente 1 nuevamente?

ResponderPositivoNegativo
5Mejor Respuesta5 Votos

SQLite está almacenando el último ROWID dentro de la tabla SQLITE_SEQUENCE que es administrada automáticamente por SQLite. Los valores de esta tabla se mantienen incluso si elimina o vacía otras tablas.

Por lo tanto, no solo tiene que eliminar su tabla en sí, sino también la información almacenada sobre su tabla de la metatabla SQLITE_SEQUENCE. Puedes hacer eso, por ejemplo, así:

DELETE FROM tab;
DELETE FROM sqlite_sequence WHERE name = 'tab';

Suponiendo que la tabla que desea eliminar se llama "tab". La primera consulta eliminaría todos los datos de su tabla, la segunda línea eliminaría las entradas de SQLITE_SEQUENCE. Al agregar nuevos datos después de eso, el conteo comenzará nuevamente desde el principio.

UPDATE sqlite_sequence SET seq = 10 WHERE name = 'tab';

Alternativamente, también puede cambiar los valores de SQLITE_SEQUENCE individualmente. Por ejemplo, la consulta anterior permitiría que el conteo comenzara en 10.
09/05/2021 a las 15:31

ResponderPositivo Negativo
Responder

Temas Relacionados

SQLite: Examinar si existe una Tabla

Información | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.