Java 如何在Android SQLite数据库中从1重新启动自动增量ID

Java 如何在Android SQLite数据库中从1重新启动自动增量ID,java,android,database,sqlite,Java,Android,Database,Sqlite,我有一个Android SQLite数据库,我插入了一些行。删除这些行后,ID列从最后一个ID继续,我想从1开始重新计数。在.db文件中有一个名为sqlite\u序列的表 每行有两列'name',这是表'seq'的名称,一个整数表示此表中的当前最后一个值 您可以将其更新为0 但是,如果您的表使用此id作为唯一标识符,请小心 看看这个答案:试试: delete from sqlite_sequence where name='your_table'; 如果要通过内容提供商重置每个RowId,请尝

我有一个Android SQLite数据库,我插入了一些行。删除这些行后,ID列从最后一个ID继续,我想从1开始重新计数。

在.db文件中有一个名为sqlite\u序列的表

每行有两列'name',这是表'seq'的名称,一个整数表示此表中的当前最后一个值

您可以将其更新为0

但是,如果您的表使用此id作为唯一标识符,请小心

看看这个答案:

试试:

delete from sqlite_sequence where name='your_table';

如果要通过内容提供商重置每个RowId,请尝试以下操作

    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);

}

我知道这不是你问的问题,但为什么要给自己制造麻烦呢?实际自动生成的值没有任何意义,如果您删除了行,您可能也删除了所有相关行,那么为什么要在1重新启动?现在我意识到,即使不从1开始ID计数,我也可以解决问题。谢谢