Android資料庫更新並保留原來資料的實現

2021-07-09 23:45:55 字數 1717 閱讀 9453

package cn.view.database;

import android.content.context;

import android.database.sqlite.sqlitedatabase;

import android.database.sqlite.sqliteopenhelper;

import android.provider.basecolumns;

public

class

dbhelper

extends

sqliteopenhelper

/***

* 需求 更新乙個個人資訊的 *** 字段 \同時之前的資料保留

* *@param context

*/// 1. 將表名改為臨時表 alter table subscription rename to __temp__subscription;

private string create_temp_table="alter table "+table+" rename to "+temp_tables;

//2 建立新錶 create table subscription (orderid varchar(32) primary key ,username varchar(32) not null ,productid varchar(16) not null);

private string create_table= newsql;

//3 插入舊資料

private string insert_data= "insert into "+table+" select *,'' from "+temp_tables;

//4 刪除臨時表

private string drop_temp_table = "drop table "+temp_tables;

public

dbhelper(context context)

@override

public

void

oncreate(sqlitedatabase db)

@override

public

void

onupgrade(sqlitedatabase db, int oldversion, int newversion)

} }

注意:這裡的建構函式可以看到乙個引數 version

這裡本來是呼叫的時候寫進來的

public

dbhelper(context context, string name, curso***ctory factory, int version)

但是 一般我們會自己實現乙個新的建構函式

public

dbhelper(context context)

這裡的1 就是 version,所以如果要**run到

@override

public

void

onupgrade(sqlitedatabase db, int oldversion, int newversion)

}

就必須要修改version ,讓它和newversion 一致。

因為之前不注意、搞了好一陣子················

Android資料庫更新並保留原來資料的實現

andoird的sqliteopenhelper類中有乙個onupgrade方法。幫助文件中只是說當資料庫公升級時該方法被觸發。經過實踐,解決了我一連串的疑問 1.幫助文件裡說的 資料庫公升級 是指什麼?你開發了乙個程式,當前是1.0版本。該程式用到了資料庫。到1.1版本時,你在資料庫的某個表中增加...

Android資料庫更新並保留原來資料的實現

第一步 我們公升級資料庫時第一步一般是公升級資料庫版本號 我之前使用的資料庫版本號是6,所以我現在公升級的版本號是 public static final int schema version 7 第二步 定義在原來的表上要新增的新字段address和age,所以新建立user表 private s...

清理oracle資料庫下的資料重複,並保留其一

select from b2bx where create date in to date 2017 12 11 08 22 16 yyyy mm dd hh24 mi ss to date 2017 12 11 08 22 17 yyyy mm dd hh24 mi ss to date 2017...