2013-12-08 62 views
4

我可以使用手動ID [PRIMARY KEY AUTO INCREMENT]值使用db.insert方法插入到SQLITE數據庫嗎?或者我必須用SQL命令使用rawQuery方法來完成它?帶手動ID(主鍵)的SQLITE INSERT

mylibman ... // Is a custom class containing all values 
SQLiteDatabase db = this.getWritableDatabase(); 
ContentValues values = new ContentValues(); 
//values.put(KEY_ID, mylibman.getBookid()); //If I put this line, ID always becomes zero 
values.put(KEY_NAME, mylibman.getBookname()); 
values.put(KEY_PRINT_NAME, mylibman.getPrintname()); 
long numrow = db.insert(TABLE_NAME, null, values); 
db.close(); 

感謝,

回答

9

是的,你可以明確定義爲INTEGER PRIMARY KEY AUTOINCREMENT列的值。 如果您嘗試重新插入現有密鑰,則會顯示「PRIMARY KEY必須是唯一的」錯誤。

自動rowid生成只發生在未給出列值或給出NULL

參考:http://www.sqlite.org/autoinc.html