2016-11-17 173 views
0

我試圖更新備忘錄表中的id列。所以,如果用的3號備忘錄被刪除,該行下方現在變成3.Sqlite自動增量

sqLiteDatabase.execSQL("CREATE TABLE " + TABLE_NAME + "(" + 
      "ID INTEGER PRIMARY KEY AUTOINCREMENT, MEMO TEXT, URGENCY TEXT)"); 

創建表ID,工作完全正常,但我發現一個SQLite錯誤「附近自動增量」。

db.execSQL("ALTER TABLE " + TABLE_NAME + " AUTOINCREMENT = 
         (SELECT MAX(ID) FROM " + TABLE_NAME + ");"); 
+0

AUTOINCREMENT意味着當您在列中添加新行時,ID會自動增加1,因此您不需要關注此列。當你刪除該行時,它不會減少,你添加的下一行將比前一行(甚至是刪除的)還要大1。 – aleksandrbel

回答

2

AUTOINCREMENT不能正常工作,因爲我猜你正在等待。

如果某列的類型爲INTEGER PRIMARY KEY AUTOINCREMENT,則使用略有不同的ROWID選擇算法。爲新行選擇的ROWID至少爲,比在同一表中存在的最大ROWID大大1。