Java 如何在Android SQLite数据库中从1重新启动自动增量ID
我有一个Android SQLite数据库,我插入了一些行。删除这些行后,ID列从最后一个ID继续,我想从1开始重新计数。在.db文件中有一个名为sqlite\u序列的表 每行有两列'name',这是表'seq'的名称,一个整数表示此表中的当前最后一个值 您可以将其更新为0 但是,如果您的表使用此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,请尝
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计数,我也可以解决问题。谢谢