是否可以在不创建任何表的情况下创建Sqlite数据库?

时间:2012-10-04 17:39:30

标签: android sqlite

我想创建一个可用于保存不同表的数据库。但首先,我只想创建一个没有任何表的数据库,然后检查数据库文件是否存在,然后发出create table命令。因此,表创建可以在以后完成,但数据库创建最初可以在android应用程序启动时完成

4 个答案:

答案 0 :(得分:0)

是的,我很确定你能做到这一点。如果你正在使用SQLiteDatabaseHelper,你所要做的就是不在onCreate中创建一个表,然后编写一个creatTable()函数来为你以后处理它。如果您使用的是Context.openOrCreateDatabase(),则会创建一个空数据库。但是,我不确定如何检查数据库是否已存在。

要记住的一件事是,如果您没有表格,则可能实际上不会创建数据库。在创建第一个表之前,只创建数据库不会有任何损害。

答案 1 :(得分:0)

这应该是可能的。查看this链接。尝试使用getWritableDatabase()。根据文档,这应该创建数据库(如果存在),或者打开现有数据库。

如果您遇到此问题,只需使用this之类的表创建数据库,然后立即删除表。即:

    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 + "'");

希望这有帮助! 干杯

答案 2 :(得分:0)

不完全确定您尝试实现的目标对我而言,听起来您只是将创建/未创建的数据库状态用作标志。如果是这样可能更好的只是处理这是一个共享的首选变量,并在您真正需要时创建数据库。

答案 3 :(得分:0)

在您对数据库进行一些更改之前,SQLite不会创建数据库。

不涉及表的无害更改将是执行this

PRAGMA user_version = 0