如何替换SQLite DB

时间:2011-09-07 15:44:34

标签: android sqlite

有没有办法替换完整的SQLite数据库?我正在寻找构建一个包含大量数据的应用程序,我需要能够更新它。幸运的是,我能够验证数据库结构不会改变,只有数据。这样做有干净的方法吗?

- 编辑 -

道歉 - 我需要添加更多细节:

为了更新应用程序中的数据,计划只是替换将从服务器某处获取的数据库。所以我不会使用onUpgrade或手动添加数据 - 我想转储现有文件并复制新文件以替换旧文件。

我认为数据库通常会存储在“/ data / data / YOUR_PACKAGE / databases /”中,我是否可以访问此目录?在这种情况下,我可以从服务器下载文件并将其复制到顶部(显然确保没有任何东西正在访问文件等)

3 个答案:

答案 0 :(得分:2)

这个问题与我的问题相同:Can I download an SQLite db on /sdcard and access it from my Android app?

File dbfile = new File("/sdcard/mydb.sqlite" ); 
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
System.out.println("Its open? "  + db.isOpen());

答案 1 :(得分:0)

SQLiteOpenHelper类中的

onUpgrade方法,如果通过构造函数传递新的数据库版本,则调用该方法。 在这里,您可以删除数据库并创建一个新数据库,或者您可以更改和创建表。

答案 2 :(得分:0)

不清楚你要做什么。

如果应用程序是只读的并且使用在应用程序外部创建的SQLite数据库,那么您只需替换SQLite数据库文件。

如果要更改数据库中的单个,同时保持应用程序可写表不变,可以从现有表中删除数据,并使用INSERT INTO从其他数据库获取数据。您还可以使用提供的命令行工具和“.import”命令从CSV文件加载。