2016-11-25 205 views
1

我以查詢創建一個SQLite見下表SQLite的ID自動遞增

db.execSQL("create table " + TABLE__WORK + " (" + ID1 + " INTEGER PRIMARY KEY ,Name TEXT, Title TEXT, Time TEXT, Date TEXT)"); 

的ID現在可以自動遞增。但在執行刪除查詢後,刪除第一行數據並再次添加,ID將從1開始,而不是從2開始。是否有可能使ID變成2

+0

您應該在主鍵中添加AUTOINCREMENT。 –

+0

可能重複的[SQLite:autoincrement主鍵問題](http://stackoverflow.com/questions/8519936/sqlite-autoincrement-primary-key-questions) – AxelH

回答

2

SQLite AUTOINCREMENT是一個關鍵字,用於自動遞增表中字段的值。您不需要ID1

見參考here

請使用:

db.execSQL("create table " + TABLE__WORK + " (ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,Name TEXT, Title TEXT, Time TEXT, Date TEXT)"); 
+0

謝謝,但我不明白爲什麼我的ID會自動 - 增加,雖然我沒有添加AUTOINCREMENT? –

+0

也許如果你告訴我你的代碼裏有什麼'ID1',我會試着給你解釋一下 –

+0

'public static final String ID1 =「ID」;' –

2

讓它INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL

這裏的SQLite Autoincrement文件說什麼:

如果出現AUTOINCREMENT關鍵字INTEGER PRIMARY KEY, 改變自動ROWID分配算法,以防止 重用ROWIDs對數據庫的生命週期之後。換句話說, AUTOINCREMENT的目的是防止重複使用以前刪除的行中的ROWIDs