有人請幫助我正確使用sqliteopenhelper類中的onUpgrade()。提前感謝。sqlite中onUpgrade()的用法是什麼?
-1
A
回答
0
在Sqliteopenhelper中定義數據庫版本。如果你改變你的數據庫版本onUpgrade()
將被執行。它是onCreate()
的對應部分
在onUpgrade中,您將刪除舊錶並生成新表。
有一個小例子:
public class BaseDatabaseHandler extends SQLiteOpenHelper {
/********************************************************
* Database
********************************************************/
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "test.db";
/********************************************************
* Table names
********************************************************/
protected static final String TABLE_INPUT = "input";
/********************************************************
* Column names
********************************************************/
/* Input*/
protected static final String COLUMN_ID = "id";
protected static final String COLUMN_NAME = "name";
public BaseDatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_INPUT_TABLE =
"CREATE TABLE " + TABLE_INPUT + " ("
+ COLUMN_ID + " LONG PRIMARY KEY, "
+ COLUMN_NAME + " TEXT, "
+ ")";
db.execSQL(CREATE_INPUT_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_INPUT);
onCreate(db);
}
}
+0
親愛的Dteuchert,謝謝你的回覆。我的舊錶數據怎麼樣?如果我更新我的應用程序,它會丟失嗎?是否有備份我所有的數據。請解釋一下。 –
+0
嘿,是的,這些數據將會丟失。你可以編程一個函數,以某種方式存儲你的舊數據,並在'db.execSQL(「DROP TABLE IF EXISTS」+ TABLE_INPUT);' – DTeuchert
1
當您更改數據庫表元素或列的值,那麼你必須要更新數據,以反映這種變化。 其他方面不會發生這樣的表或其他類型的錯誤。 因此,如果您的應用程序已經上傳,那麼在更改數據庫之後,您必須更改數據庫版本並在onUpdate()方法中重新創建所有表。
相關問題
- 1. 調用sqlite onUpgrade問題
- 2. Android SQLite OnUpgrade錯誤
- 3. 的Android SQlite的OnUpgrade問題
- 4. 什麼是錯用sqlite的方法
- 5. onUpgrade()Android中的sqlite數據庫
- 6. Android SQLite onUpgrade(),創建新表
- 7. Android SQLite onUpgrade =強制關閉
- 8. Android SQLite:使用onUpgrade更新數據?
- 9. sqlite數據庫onUpgrade()不會被調用
- 10. 想用SQLite數據庫的onUpgrade方法稍微澄清一下
- 11. 爲什麼SQLiteOpenHelper在「onUpgrade」方法中刪除表?
- 12. 在android的sqlite數據庫onUpgrade
- 13. 自己的SQLite數據庫和onUpgrade
- 14. 如何使用onUpgrade方法在Android中的SQLite表中修改類型?
- 15. Android Sqlite onUpgrade不會複製新列
- 16. SQLite數據庫,onUpgrade版本1發佈
- 17. 什麼是SQLite中的datetime-type列?
- 18. 什麼是SQLite中的索引?
- 19. 什麼是SQLite文檔中的「頁面」?
- 20. 什麼是SQLite中的影子表?
- 21. SQLite中的加號是什麼?
- 22. SQlite中的數據庫清理的方法是什麼?
- 23. SQLite與SAS一起使用最簡單的方法是什麼?
- 24. 用SQLite保存SoapEnvelope的最佳方法是什麼?
- 25. Android中查詢Sqlite時的最佳做法是什麼?
- 26. 在SQLite表中更改鍵的最佳方法是什麼?
- 27. SQLite中以下sql的替代方法是什麼?
- 28. SQLite中「不等於」的語法是什麼?
- 29. 使用onUpgrade更新我的預填充SQLite數據庫()
- 30. Android上的SQLite數據庫重新創建記錄,而不是調用onUpgrade()
檢查此鏈接希望它會幫助你http://developer.android.com/intl/ru/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase,int,int ) –
使用'onUpgrade()'時你遇到的具體問題是什麼? – laalto
其實我有一個家庭自動化應用程序,它有許多設備保存在本地數據庫。我懷疑如果由開發人員進行更新,它如何反映在我的本地數據庫中。如果所有表都被替換,我將丟失所有數據。無論如何要備份它嗎?請幫助我。 –