2016-08-02 134 views
-1

我有的情况:Android SQLite数据库更新表时更新应用程序

在较新版本的应用程序中,我将添加另一列到SQLite表。我需要在应用程序更新时使此更改生效,并且不会从数据库中丢失数据(通过重新创建新结构)。

可能在onUpgrade中启动我的SQL更新脚本?如何正确地做到这一点?

+3

只需使用'Alter Table' sql命令并添加新列。这对您的数据没有影响。在onUpgrade(.....)' –

+0

我知道sql脚本,但我可以安全地在onUpgrade中执行它吗?这是什么标准解决方案? – Majkl

+0

你期望什么?这是唯一的标准方式。 –

回答

2

您必须升级您的数据库版本onCreate(),然后使用onUpgrade()。就像这样:

public YouSQLiteHandler(Context context) { 
    super(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION); --> 1 to 2 for example 


} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 


    addNewColumnTable(); 
} 

当你改变你的数据库版本,Android的自动调用onUpgrade()和你的数据库将与你把onUpgrade()当用户更新应用这里

更多信息的所有变化进行更新:

http://www.michenux.net/android-database-sqlite-creation-upgrade-245.html