【问题标题】:Is it necessary to detach a SQLite database after attaching it?附加后是否需要分离 SQLite 数据库?
【发布时间】:2016-09-25 16:26:18
【问题描述】:

为了在设备之间同步数据,我在设备上检索了一个备份数据库,然后请求此备份数据库更新我的应用程序当前使用的数据库。

我使用此代码附加备份数据库:

try {
    db.execSQL("attach database ? as " + DATABASE_BACKUP_NAME, new String[]{dbFile.getPath()});
} catch(SQLiteException e) {
    Log.i(TAG, "GoogleDrive: Database already in use, continue...");
}

当备份数据库已经附加时,我使用 try catch 继续。

每次都重新分离和附加数据库是一种好方法还是更好?

为什么分离数据库会有用?

注意:这是来自 SQLite 文档的唯一信息:

此语句分离先前使用 ATTACH 语句附加的附加数据库连接。当不处于共享缓存模式时,可能会使用不同的名称多次附加相同的数据库文件,并且将一个与文件的连接分离会使其他文件保持不变。

【问题讨论】:

    标签: android database sqlite google-drive-api


    【解决方案1】:

    我只会在需要时保持该备份数据库连接,然后将其分离。可以这样想:如果不再需要文件,您会保持打开状态吗?将附加的数据库视为资源。需要时分配资源,不需要时释放。

    【讨论】:

    • 我想你是对的,我只是有点担心性能,但我认为这不会有太大的不同。
    猜你喜欢
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多