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資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- 資料庫升級之-Dataguard滾動升級資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 資料庫升級之-資料泵資料庫
- Grafana的版本升級和資料遷移Grafana
- Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作Android資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級和工具資料庫
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- 資料庫升級-物理重新整理資料字典資料庫
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- 13 使用SQL Apply 升級資料庫SQLAPP資料庫
- LinkedIn大資料工程的升級大資料
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- oracle資料庫升級的時候oracle universal installer has detected........Oracle資料庫
- 自定義開發資料庫升級程式資料庫
- win7升級win10資料會丟失嗎 win7升級win10保留資料檔案嗎Win7Win10
- 大資料:小白升級版大資料
- 不起介面,用response file的方式升級資料庫資料庫
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- 故障分析 | MySQL 資料庫升級後,資料庫怎麼卡住了MySql資料庫
- phpStudy2018 升級資料庫 MySQL5.7PHP資料庫MySql
- 雲圖說|雲資料庫MySQL核心小版本升級全攻略資料庫MySql
- 12. Oracle版本、補丁及升級——12.3. 升級Oracle
- 應用升級SpringCloud版本時的注意事項(Dalston升級到Edgware)SpringGCCloud
- MSE 治理中心重磅升級-流量治理、資料庫治理、同 AZ 優先資料庫
- java實現“資料平滑升級”Java
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- 成為MySQL DBA 部落格系列-資料庫升級MySql資料庫
- 如何理解騰訊雲資料庫戰略升級?資料庫
- 如何將SQL Server 2000備份的資料庫檔案還原(升級)為SQL Server 2005或更高版本的資料庫?SQLServer資料庫
- 升級mac的PHP版本MacPHP
- Redis的跨版本升級Redis
- 如何升級fedora的版本
- SAP HANA 2.0版本升級,中國企業在選資料庫時是否會使用?資料庫
- MTK線刷升級操作指引資料
- datagrip2019.1.4-升級資料遷移