以SQL格式在服务器上上载SQLite数据库文件

时间:2013-12-16 06:46:53

标签: android sqlite client-server android-sqlite

我想在服务器上以sql格式上传本地sqlite数据库文件。是否可以直接将其保存为mysql支持的格式?该文件在服务器上成功上传,但它只是一个sqlite db的平面文件。当我在editplus中打开它或在phpmyadmin中导入它时,它显示错误。但是当我从.sql扩展名中的sqlite manager手动导出数据库时,它在editplus中以可读格式成功打开。请帮我解决这个问题。提前谢谢!

1 个答案:

答案 0 :(得分:0)

AFAIK你说的是两件完全不同的事情。

<强> Its like comparing a DB dump file to a properly exported file like an xml file with schema and data information from Oracle or MySql

导出时,您会获得包含或不包含 .sql 扩展名的文件,这意味着包含 DDL 或<等查询的文件strong> DML createinsert等。可以按顺序运行以执行其中的所有命令,并为您提供该文件中存在的正确架构和数据。

通过应用程序创建的数据库文件特定于该设备,并且是 .sqlite 文件,该文件特定于 sqlite浏览器并且可能已读取它而不仅仅是您可以在edit-plus或文本编辑器中打开的一组查询。

您在设备上找到的Sqlite数据库文件是动态生成的页面,以维护数据库的完整性。

有关详细信息,请阅读

Format of sqlite database

抱歉,我没有代码,但想法是,

- 使用算法进行编辑 -

假设您拥有所有表和约束的create命令,因为它们在大多数情况下都不会改变。

  

您可以将此功能用作实用程序来创建和维护sql   与您拥有的数据库平行的命令列表。

void createExportCommands()
{
...

 - Read all tables one by one using a `Cursor`
 - Based on specific tables/columns create queries 
i.e. String query="insert into "+your_table+" values("+cursor.getString(0),....+");";
 - Write this data into a file called export_data.sql and keep updating it in background

}

也许这不是最好的方法,但它会解决您的问题。