Добавление новой таблицы в базу данных после того, как приложение было выполнено один раз

Я делаю простую базу данных на Android. Я хочу добавить новую таблицу после того, как мой код будет выполнен один раз. Теперь, когда я пытаюсь изменить свой метод onCreate () в классе EventDataSqlHelper, мое приложение вылетает.

Вероятно, это связано с тем, что onCreate () , связанный с SQLiteOpenHelper , выполняется только при первом запуске приложения, и мы не можем вносить в него дальнейшие изменения.

Я также пробовал написать отдельную функцию для добавления новой таблицы. Он отлично работал при первом запуске, но, поскольку при втором выполнении он перезапишет свою предыдущую базу данных, следовательно, это приведет к сбою приложения.

Есть ли способ добавить новые таблицы в базу данных, если база данных уже создана?

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) {


    }


}
5
задан OMG Ponies 7 December 2011 в 05:31
поделиться