我的onUpgrade函數出現了一個小問題。 的代碼如下:改變onUpgrade中的表格
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion<2){
db.rawQuery("ALTER TABLE "+this.getTableName()+" ADD COLUMN "+COLUMNS.TIME+ " integer default 0;", null);
db.rawQuery("ALTER TABLE "+this.getTableName()+" ADD COLUMN "+COLUMNS.DATE+ " integer default 0;", null);
db.rawQuery("UPDATE "+this.getTableName()+ " SET "+COLUMNS.TIME+ "="+COLUMNS.TIME_OLD+";", null);
db.rawQuery("UPDATE "+this.getTableName()+ " SET "+COLUMNS.DATE+ "="+COLUMNS.DATE_OLD+";", null);
}
};
的onUpgrade功能顯然是所謂正確的,因爲我得到的錯誤:
no such column: _timenew (code 1): , while compiling: UPDATE TABLE_SCORE_NORMAL SET _timenew=_time;
我不知道爲什麼是這樣。如果我在控制檯上手動嘗試此功能,它可以完美工作。
在此先感謝。
我不知道這是否是問題,但如果該語句不是查詢,您應該調用'execSql()'而不是'rawQuery()' –
謝謝,修復它。奇怪的是,它並沒有在ALTER上出現問題。 – LeDon