SQLite資料庫的公升級

2021-12-30 09:39:00 字數 1034 閱讀 5232

sqlite資料庫的公升級

做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;

通過以上四個步驟,就可以完成舊資料庫結構向新資料庫結構的遷移,並且其中還可以保證資料不會應為公升級而流失。

當然,如果遇到減少欄位的情況,也可以通過建立臨時表的方式來實現。

SQLite資料庫公升級

增加表 刪除表修改表 1 更改表名字 2 增加表字段 3 刪除表字段 更改乙個已經存在欄位的名稱 資料型別等等 1 刪除乙個已經存在的字段,或者更改乙個已經存在欄位的名稱 資料型別等等 2 增加表 刪除表 增加表字段 修改表名字 問題不大,因為它們都沒有涉及到資料的遷移問題,增加表只是在原來的基礎上...

sqlite資料庫改動及公升級

今天是上班的第二天。聽說我近期的任務就是改bug。唉,權當學習了,遇到的一些問題都記錄下來。sqlite資料庫是android中很經常使用的資料庫。今天幫別人改bug,遇到一些問題記錄下來。1.改動資料庫表的結構要通過資料庫公升級來實現,資料庫會自己主動執行sqliteopenhelper的繼承類中...

android之SQLite之資料庫公升級

public abstract void onupgrade sqlitedatabase db,int oldversion,int new version 這個方法在實現時需要重寫。onupgrade方法會在資料庫需要公升級的時候呼叫。可以用來增刪表或者其他任何操作。如果你想新增新的列你可以使用...