2023年02月14日 11:24:11
public
class
copyofdatabasehelper
extends
sqliteopenhelper
return db_helper;
}public
copyofdatabasehelper
(context context)
/*** 資料庫建立時執行
*/@override
public
void
oncreate
(sqlitedatabase db)
/*** 資料庫版本發生變化
*/@override
public
void
onupgrade
(sqlitedatabase db, int oldversion, int newversion)
}第一次資料庫公升級,版本號為2,新增乙個age欄位:
public
class
copyofdatabasehelper
extends
sqliteopenhelper
return db_helper;
}public
copyofdatabasehelper
(context context)
/*** 資料庫建立時執行
*/@override
public
void
oncreate
(sqlitedatabase db)
/*** 資料庫版本發生變化
*/@override
public
void
onupgrade
(sqlitedatabase db, int oldversion, int newversion)
}第二次公升級資料庫,版本號為3,新增乙個成績字段:
public
class
copyofdatabasehelper
extends
sqliteopenhelper
return db_helper;
}public
copyofdatabasehelper
(context context)
/*** 資料庫建立時執行
*/@override
public
void
oncreate
(sqlitedatabase db)
/*** 資料庫版本發生變化
*/@override
public
void
onupgrade
(sqlitedatabase db, int oldversion, int newversion)
//當前版本為2時就只公升級下面的字段
string sql1 =
"alter table "+datacolumn.student.table_name+
" add column "+datacolumn.student.column_name_score+
" text ";
db.execsql(sql1);}}
公升級資料庫時我們就要考慮全面,若不加上判斷語句判斷版本號,若之前2版本使用者沒有公升級就直接公升級到3,就會漏掉字段,故公升級時所有的情況都應該考慮進去。
android應用程式更新的時候如果資料庫修改了字段需要更新資料庫,並且保留原來的資料庫資料:
這是原有的資料庫表
create_book = "create table book(bookid integer primarykey,bookname text);";
然後我們增加乙個字段:
create_book = "create table book(bookid integer primarykey,bookname text,bookcontent text);";
首先我們需要把原來的資料庫表重新命名一下
create_temp_book = "alter table book rename to _temp_book";
然後把備份表中的資料copy到新建立的資料庫表中
insert_data = "insert into book select *,' ' from _temp_book";(注意' '是為新加的字段插入預設值的必須加上,否則就會出錯)。
然後我們把備份表乾掉就行啦。
drop_book = "drop table _temp_book";
然後把資料庫的版本後修改一下,再次建立資料庫操作物件的時候就會自動更新(注:更新的時候第乙個建立的運算元據的物件必須是可寫的,也就是通過這個方法getwritabledatabase()獲取的資料庫操作物件)
然後在onupgrade()方法中執行上述sql語句就ok了
public class dbservice extends sqliteopenhelper
@override
public void oncreate(sqlitedatabase db)
@override
public void onupgrade(sqlitedatabase db, int oldversion, int newversion) }
資料庫 insert 增加列
一些出現的問題 1.insert 增加列 增加乙個列 alter table 表名 add 列名 資料型別 如 alter table emp add weight number 38,0 修改乙個列的資料型別 一般限於修改長度,修改為乙個不同型別時有諸多限制 alter table 表名 modi...
資料庫的增 刪 改 查 增加列 刪除列
varchar n n為數字,表示n位數的字元。增 create datebase xuesheng 建立乙個xuesheng的資料庫,注意要有go go create table xueshengxinxi code int,編號為int name varchar 20 名字為varchar sc...
SQLite資料庫建立臨時表 增加列的方法
這兩天幫朋友做乙個關於地熱資料處理的小軟體再次用到了sqlite資料庫,不過這次不是使用其快取 記憶體資料庫的功能,而是純粹將其作為乙個嵌入式檔案資料庫來使用的,其實對於資料量級相對比較小的系統而言,嵌入式資料庫sqlite絕對是乙個非常理想的選擇。但是,話又說回來,畢竟是乙個沒有dba的資料庫系統...