2011-09-07 15 views
5

Tengo una base de datos SQLite de Android e inserté algunas filas. Después de que he eliminado estas filas columna ID continúa desde el último ID y me gustaría reiniciar el conteo de 1.¿Cómo puedo reiniciar la identificación de incremento automático desde 1 en una base de datos SQLite de Android

+2

sé no es lo que preguntaste, pero ¿por qué crear dolores de cabeza para ti? Los valores autogenerados reales no tienen ningún significado y, presumiblemente, si eliminó las filas, también borró todas las filas dependientes, entonces, ¿por qué reiniciar en 1? – Tim

+0

posible duplicado de [SQLite Reset Primary Key Field] (http://stackoverflow.com/questions/1601697/sqlite-reset-primary-key-field) –

+0

Ahora me di cuenta de que puedo resolver el problema incluso sin iniciar el recuento de ID. de 1. Gracias. – Alex

Respuesta

5

dentro de su archivo .db hay una tabla llamada sqlite_sequence

Cada fila tiene dos columnas 'nombre' que es el nombre de la 'SEC' mesa un número entero que indica el valor actual pasada en esta tabla

puede actualizarlo a 0

Pero cuidado si su mesa de utilizar este ID como el identificador único.

Eche un vistazo a esta respuesta: SQLite Reset Primary Key Field

5

Probar:

delete from sqlite_sequence where name='your_table'; 
1

Si desea restablecer cada RowId a través de proveedor de contenido de prueba este

rowCounter=1;do {   
     rowId = cursor.getInt(0); 
     ContentValues values; 
     values = new ContentValues(); 
     values.put(Table_Health.COLUMN_ID, 
        rowCounter); 
     updateData2DB(context, values, rowId); 
     rowCounter++; 

    while (cursor.moveToNext()); 

public static void updateData2DB(Context context, ContentValues values, int rowId) { 
Uri uri; 
uri = Uri.parseContentProvider.CONTENT_URI_HEALTH + "/" + rowId); 
context.getContentResolver().update(uri, values, null, null); 

}

Cuestiones relacionadas