這是我創建的表查詢。插入查詢不能按預期在android sqlite中工作
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_BRANDS + "("
+ KEY_ID + " INTEGER UNIQUE,"
+ KEY_NAME + " TEXT UNIQUE,"
+ KEY_CREATED_AT + " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,"
+ KEY_UPDATED_AT + " TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
這是更新/添加新品牌的功能。
void addBrand(Brand brand) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ID, brand.getId()); // Contact Name
values.put(KEY_NAME, brand.getName()); // Contact Name
db.execSQL("UPDATE " + TABLE_BRANDS +
" SET " + KEY_NAME + " = ?, " +
KEY_UPDATED_AT + " = CURRENT_TIMESTAMP" +
" WHERE " + KEY_ID + " = ?",
new Object[]{brand.getName(), brand.getId()});
db.insertWithOnConflict(TABLE_BRANDS, null, values, SQLiteDatabase.CONFLICT_IGNORE);
db.close(); // Closing database connection
}
在調用時,我正在傳遞id和name,像這樣。
db.addBrand(new Brand(17, "sdddddsfsfdsfdshfjdh"));
問題是addBrand()沒有添加brand_id,我正在通過。它增加了一個連續的值(1,2 3 4)而不是那個?
這是爲什麼?如何解決這個問題?
根據我的理解,如果我沒有一個主鍵的列,sqlite會自己添加一列來標識行。我錯了嗎?
你的品牌類是什麼樣的? – laalto
int id;字符串名稱;以及那兩個吸氣者,二傳手。 –