感謝您澄清onUpgrade()將不支持刪除/刪除語句@Pentium 10
對於那些你想知道的確切時刻誰當onUpgrade()被調用,它是一個過程調用getReadableDatabase()或getWriteableDatabase()。
對於那些不清楚如何確保它被觸發的答案是:當提供給SqLiteOpenHelper的構造函數的數據庫版本更新爲時,會觸發它。下面是一個例子
public class dbSchemaHelper extends SQLiteOpenHelper {
private String sql;
private final String D_TAG = "FundExpense";
//update this to get onUpgrade() method of sqliteopenhelper class called
static final int DB_VERSION = 2;
static final String DB_NAME = "fundExpenseManager";
public dbSchemaHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
// TODO Auto-generated constructor stub
}
現在... onUpgrade()
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
sql = "ALTER TABLE " + fundExpenseSchema.Expense.TABLE_NAME + " ADD COLUMN " + fundExpenseSchema.Expense.FUNDID + " INTEGER";
arg0.execSQL(sql);
}
你知道邁克,它已經過了一年。你真的應該接受其中一個答案 – Noah 2011-10-18 13:42:32
最後看到:09年9月7日在17:35 – 2012-12-05 06:34:41
年,但邁克不要叫'onUpgrade()' – 2013-08-01 06:52:15