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

时间:2011-09-07 19:32:04

标签: java android database sqlite

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

3 个答案:

答案 0 :(得分:5)

在.db文件中有一个名为sqlite_sequence

的表

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

您可以将其更新为0

但请注意,您的表是否使用此ID作为唯一标识符。

看一下这个答案:SQLite Reset Primary Key Field

答案 1 :(得分:5)

尝试:

delete from sqlite_sequence where name='your_table';

答案 2 :(得分:1)

如果您想通过内容提供商重置每个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);

}