我只想创建一个可用于保存不同表的数据库。但起初,我只想创建一个没有任何表的数据库,然后检查数据库文件是否存在,然后发出 create table 命令。因此,表创建可以在以后完成,但数据库创建最初可以在 android 应用程序启动时完成
问问题
304 次
4 回答
0
于 2012-10-04T19:11:41.817 回答
0
是的,我很确定你可以做到这一点。如果您使用的是 SQLiteDatabaseHelper,您只需不在 onCreate 中创建表,然后编写一个 creatTable() 函数稍后为您处理。如果您使用 Context.openOrCreateDatabase(),它会创建一个空数据库。但是,我不确定如何检查数据库是否已经存在。
要记住的一件事是,如果您没有表,则实际上可能不会创建数据库。在创建第一个表之前创建数据库不会有任何伤害。
于 2012-10-04T17:44:10.413 回答
0
这应该是可能的。看看这个链接。尝试使用 getWritableDatabase()。根据文档,如果数据库存在,则应该创建数据库,或者打开现有数据库。
如果您对此有疑问,则只需使用这样的表创建数据库,然后立即删除该表。IE:
public static void clearDatabase(SQLiteDatabase db) {
db.delete(DATABASE_TABLE, null, null);
db.delete(sqlite_sequence, "name = '"
+ DATABASE_TABLE + "'", null);
}
上面的代码删除了表中的所有条目。要完全删除它,你可以试试这个
db.execSQL("DROP TABLE IF EXISTS '" + DATABASE_TABLE + "'");
希望这会有所帮助!干杯
于 2012-10-04T17:53:36.613 回答
0
不完全确定您尝试实现的目标对我来说听起来像您只是使用创建/未创建的数据库状态作为标志。如果是这样,最好只处理这是一个 sharedpreference 变量并在您实际需要时创建数据库。
于 2012-10-04T17:55:49.697 回答