2013-12-08 8 views
4

Можно ли вставить в базу данных SQLITE с помощью метода db.insert с идентификатором ручного ID [PRIMARY KEY AUTO INCREMENT]? Или я должен сделать это с помощью метода rawQuery с помощью команды SQL?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 должно быть уникальным».

Автоматическое генерирование строк происходит только в том случае, если значение столбца не задано или задано как NULL.

Код: http://www.sqlite.org/autoinc.html

Смежные вопросы