2011-09-07 38 views
5

我有一個Android SQLite數據庫,並且插入了一些行。之後我刪除這些行ID列從最後一個ID繼續,我想重新從1如何在Android SQLite數據庫中從1重新啓動自動遞增ID

+2

我知道這不是你問的,但爲什麼讓自己頭疼?實際的自動生成的值沒有意義,大概如果你刪除了行,你也刪除了所有的相關行,那麼爲什麼從1重新啓動呢? – Tim

+0

[SQLite重置主鍵字段]的可能重複(http://stackoverflow.com/questions/1601697/sqlite-reset-primary-key-field) –

+0

現在我意識到,即使不啓動ID計數,我也可以解決問題從1.謝謝。 – Alex

回答

5

計數內,您的.db文件有一個名爲sqlite_sequence

一個表的每一行有兩列「名稱」這是臺「序列」一個整數表明在該表

當前最後一個值,您可以將其更新到0

但要注意,如果你的表使用這個號碼作爲唯一標識符名稱。

看看這個答案:SQLite Reset Primary Key Field

5

嘗試:

delete from sqlite_sequence where name='your_table'; 
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); 

}