我正在Android中創建一個簡單的數據庫。我想在我的代碼執行一次後添加新表。現在,每當我嘗試在EventDataSqlHelper類中更改我的onCreate()方法時,我的應用程序崩潰。在應用程序執行一次之後向數據庫添加新表格
這可能是因爲與SQLiteOpenHelper
關聯的onCreate()
僅在應用第一次運行時執行,我們無法對其進行進一步修改。
我也試着寫一個單獨的函數來添加新表。它在第一次執行時完美運行。但自第二次執行以來,它將覆蓋其先前的數據庫,因此導致應用程序崩潰。
如果數據庫已經創建,有什麼辦法可以向數據庫添加新表?
package org.example.sqldemo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import android.util.Log;
/** Helper to the database, manages versions and creation */
public class EventDataSQLHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "events.db";
private static final int DATABASE_VERSION = 1;
// Table name
public static final String TABLE = "events";
// Columns
public static final String TIME = "time";
public static final String TITLE = "title";
public EventDataSQLHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table " + TABLE + "(" + BaseColumns._ID
+ " integer primary key autoincrement, " + TIME + " integer, "
+ TITLE + " text not null);";
Log.d("EventsData", "onCreate: " + sql);
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}