Gau*_*ora 5 sql sqlite android
我正在Android中创建一个简单的数据库.我想在代码执行一次后添加新表.现在,每当我尝试在EventDataSqlHelper类中更改我的onCreate()方法时,我的应用程序崩溃了.
这可能是因为只有首次运行应用程序时才执行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) {
}
}
Run Code Online (Sandbox Code Playgroud)
这是什么onUpgrade和DATABASE_VERSION适用.
例:
events,并在手机上执行.现在你决定,你想要一张新桌子users.
DATABASE_VERSION = 2;(这是您的版本号)onCreate(),创建所有表(create table events&create table users)onUpgrade(),创建版本oldVersion和newVersion(create table users)之间更改的所有表稍后如果要添加新表,DATABASE_VERSION再次递增,并在其中创建所有表onCreate,并进行更改onUpgrade
| 归档时间: |
|
| 查看次数: |
2687 次 |
| 最近记录: |