Android版本升級同時Sqlite資料庫的升級及之前資料的保留
每次你new SQLiteOpenHelper的時候都會穿一個version, 當你傳的version比當前資料庫的大時就會呼叫該方法了。
做Android應用,不可避免的會與SQLite打交道。隨著應用的不斷升級,原有的資料庫結構可能已經不再適應新的功能,這時候,就需要對SQLite資料庫的結構進行升級了。 SQLite提供了ALTER TABLE命令,允許使用者重新命名或新增新的欄位到已有表中,但是不能從表中刪除欄位。
並且只能在表的末尾新增欄位,比如,為 Subscription新增兩個欄位:
1 ALTER TABLE Subscription ADD COLUMN Activation BLOB;
2 ALTER TABLE Subscription ADD COLUMN Key BLOB;
另外,如果遇到複雜的修改操作,比如在修改的同時,需要進行資料的轉移,那麼可以採取在一個事務中執行如下語句來實現修改表的需求。
1. 將表名改為臨時表
ALTER TABLE Subscription RENAME TO __temp__Subscription;
2. 建立新表
CREATE TABLE Subscription (OrderId VARCHAR(32) PRIMARY KEY ,UserName VARCHAR(32)NOT NULL ,ProductId VARCHAR(16) NOT NULL);
3. 匯入資料
INSERT INTO Subscription SELECT OrderId, “”, ProductId FROM __temp__Subscription;
或者
INSERT INTO Subscription() SELECT OrderId, “”, ProductId FROM __temp__Subscription;
* 注意 雙引號”” 是用來補充原來不存在的資料的
4. 刪除臨時表
DROP TABLE __temp__Subscription;
通過以上四個步驟,就可以完成舊資料庫結構向新資料庫結構的遷移,並且其中還可以保證資料不會應為升級而流失。
當然,如果遇到減少欄位的情況,也可以通過建立臨時表的方式來實現。
相關文章
- Android資料庫Sqlite的基本用法及升級策略Android資料庫SQLite
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- rac 升級crs 升級資料庫軟體,升級資料庫資料庫
- 資料庫的升級及遷移資料庫
- 資料庫升級資料庫
- ♀♀資料庫升級♀♀資料庫
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- Android升級資料庫的最佳寫法Android資料庫
- 資料庫升級之-Dataguard滾動升級資料庫
- Oracle 資料庫升級Oracle資料庫
- AndroidSqlite資料庫版本升級管理初探AndroidSQLite資料庫
- 升級到資料庫到10.2.0.5.0版本資料庫
- 資料庫升級之-資料泵資料庫
- Android ORM 框架:GreenDao 資料庫升級AndroidORM框架資料庫
- Grafana的版本升級和資料遷移Grafana
- 資料庫升級和工具資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級報錯資料庫
- oracle資料庫升級11.2.0.3升級到11.2.0.4Oracle資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- 資料庫版本升級(upgrade 9.2.0.1 to11.2.0.3)資料庫
- Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作Android資料庫
- 他奶奶個腿的資料庫升級資料庫
- 我的PB程式資料庫升級程式資料庫
- Oracle資料庫升級(轉發)Oracle資料庫
- Oracle 資料庫 升級為 RACOracle資料庫
- Android資料庫升級不丟失資料解決方案Android資料庫
- GreenDao 相容升級,保留舊資料的---全方面解決方案
- 使用檔案複製的方式進行資料庫版本升級資料庫
- 資料庫升級-物理重新整理資料字典資料庫
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- 關於資料庫升級的metalink文章資料庫
- 如何從資料庫 11.2 降級至之前的版本資料庫
- Oracle資料庫升級與補丁Oracle資料庫
- 資料庫升級後‘PLAN_TABLE資料庫
- Oracle 資料庫升級注意事項Oracle資料庫
- RAC資料庫升級到10.2.0.5資料庫