问题描述
- android sqlite onUpgrade 中执行了 CREATE TABLE 失败
-
android sqlite onUpgrade 中执行了 CREATE TABLE if not exists test
(
User_Id BIGINT,
test INTEGER DEFAULT 1,
yuliu0 VARCHAR(200),
yuliu1 BIGINT
);
语句,在事务中执行的,但是事务都已经成功提交了,但是我去看数据库的时候,发现要创建的表,并没有被创建,怎么回事呢?
解决方案
是否更新了version版本号,看onUpgrade是否执行
把数据库拷出来看,放在源目录下看有时候客户端工具不一定可靠,碰到过表存在,但用客户端工具查看不存在。但拷贝出来看发现数据表是存在的。也可以换个客户端工具。
解决方案二:
private static class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_NAME + " TEXT NOT NULL, " +
KEY_HOTNESS + " TEXT NOT NULL);"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
先看代码是否执行成功了,如果成功了,那么就查看一下数据库日志,是否对应的表创建的时候有问题或其他原因分析
时间: 2024-10-16 05:25:05